Internet DRAFT - draft-maes-lemonade-tcp-challenged-environments

draft-maes-lemonade-tcp-challenged-environments



          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
Lemonade                                                     S. H. Maes 
Internet Draft: Lemonade TCP Challenged                     R. Cromwell 
Environments                                                  (Editors) 
                                                                        
Document: draft-maes-lemonade-tcp-challenged-      
environments-01 
Expires: December 2006                                        June 2006 
    
    
                  Lemonade in TCP Challenged Environments 
                                      
Status of this Memo 
    
   By submitting this Internet-Draft, each author represents that any 
   applicable patent or other IPR claims of which he or she is aware 
   have been or will be disclosed, and any of which he or she becomes 
   aware will be disclosed, in accordance with Section 6 of BCP 79. 
    
   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   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 November 30, 2006. 
    
Abstract 
    
   The IETF lemonade group has defined extensions to the IMAP and SMTP 
   protocols that provide optimizations for clients in a variety of 
   settings, such as mobile networks. This document discusses issues 
   related to deployments where TCP support in the client is degraded or 
   non-existent, and techniques for overcoming these limitations. 
 
Conventions used in this document 
    
   In examples, "C:" and "S:" indicate lines sent by the client and 
   server respectively. 
    
 
 
Maes                   Expires – December 2006               [Page 1] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
   document are to be interpreted as described in [RFC2119]. 
    
   An implementation is not compliant if it fails to satisfy one or more 
   of the MUST or REQUIRED level requirements for the protocol(s) it 
   implements. An implementation that satisfies all the MUST or REQUIRED 
   level and all the SHOULD level requirements for a protocol is said to 
   be "unconditionally compliant" to that protocol; one that satisfies 
   all the MUST level requirements but not all the SHOULD level 
   requirements is said to be "conditionally compliant."  When 
   describing the general syntax, some definitions are omitted as they 
   are defined in [RFC3501], [RFC821], and related documents.   
 
 
Table of Contents 
          
   Status of this Memo...............................................1 
   Abstract..........................................................1 
   Conventions used in this document.................................1 
   Table of Contents.................................................2 
   1. Introduction and motivation....................................2 
   2. Techniques.....................................................3 
      2.1. Tunneling Approaches......................................3 
         2.1.1. Non-Persistent HTTP for Batch Connectivity Mode......5 
         2.1.2. Using Persistent HTTP/HTTPS + Chunked Transfer 
		Encoding for Stream Connectivity Mode................7 
         2.1.3. Using HTTP as a binding for SMTP.....................8 
   3. Asynchronous Approaches........................................8 
      3.1. Transmission Methods......................................9 
      3.2. Authentication............................................9 
      3.3. Response Payload..........................................9 
   4. Tracking and Controlling Tunneled Traffic......................9 
   5. Security Considerations.......................................10 
   References.......................................................10 
   Future Work......................................................11 
   Version History..................................................11 
   Acknowledgments..................................................12 
   Authors Addresses................................................12 
   Intellectual Property Statement..................................12 
   Disclaimer of Validity...........................................13 
   Copyright Statement..............................................13 
    
    
1. 
   Introduction and motivation 
    
   The IETF lemonade working group is designing a set of extensions to 
   IMAP and SMTP to facilitate access to internet email in diverse 
   service environments, such as on resource constrained devices, and 
 
 
Maes                   Expires – December 2006               [Page 2] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
   slow or high latency networks. The preferred model and best current 
   practices for doing this is described in [DEPLOYMENTS].  
 
   Not all networks and clients permit the preferred deployment model at 
   this point in time, such as some devices which do not provide a TCP 
   stack to the application (some mobile phones and set-top box 
   environments), and some networks with very high and unpredictable 
   latency like satellite networks. Over time, it is expected that as 
   technology improves, some of these limitations will be lifted to 
   permit deployment using best current practices. However, it is 
   desirable to provide some form of access for users of these networks 
   until that time. 
     
2. 
  Techniques 
 
   Examples of major markets that have some TCP limitations include: 
    
   - Some Java MIDP devices do not permit arbitrary TCP, but do permit 
   HTTP 
   - TV Set-top box providers which may provide degraded TCP or HTTP 
   over MPEG-2 
   - Global satellite wireless networks which provide email in remote 
   environments and at sea. 
    
   This document considers two techniques to overcome these 
   difficulties. The first is HTTP Tunneling to attempt regular IMAP and 
   SMTP layered on top of HTTP. The second technique is a URL mapping 
   approach which uses [IMAPURL] as a compact representation for sending 
   batches of IMAP commands over severely limited physical networks like 
   two-way satellite networks.  
    
   Servers and clients adhering to this draft MUST support HTTP 
   tunneling, and MAY support section 3's IMAPURL approach. 
    
   2.1. 
        Tunneling Approaches 
    
   There are two approaches for achieving tunneling over HTTP, depending 
   on whether keep-alive chunked-transfer-encoded is supported by any 
   intermediaries in the network (i.e. HTTP proxy servers) or not. The 
   general approach is to use a content-type for packaging a payload of 
   IMAP commands, described below. 
    
   To use HTTP/HTTPS as the transfer protocol for IMAP commands and 
   responses between the IMAP client and server, the client MUST send an 
   HTTP POST request to the server, and embed IMAP commands (commands to 
   an IMAPv4 Rev1 server or IMAP servers supporting Lemonade extensions) 
   in the body of the request. A server MUST reject a HTTP GET request 
   from the client.  The content-type header of the POST request MUST be 
   set to "application/vnd.lemonade.imap".  Multiple IMAP commands may 
 
 
Maes                   Expires – December 2006               [Page 3] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
   be included in one POST request. In general, the HTTP server is 
   expected to preserve session state between HTTP commands to the best 
   of its ability, therefore the client does not need to reauthenticate 
   and reissue a SELECT until it receives an (IMAP) error response 
   showing that it is not authenticated. 
    
   In what follows, the term Lemonade client/server is used to refer to 
   a client/server that supports both IMAPv4 Rev1 as well as any 
   LEMONADE extensions. 
    
   When the HTTP binding is used, the Lemonade server listens on 
   whatever port has been configured for this. 
    
   The following is an example of a Lemonade HTTP request: 
    
      POST /lemonadePath HTTP/1.1 <CRLF> 
      Content-Type: application/vnd.lemonade.imap <CRLF>  
      X-Http-Binding: imap <CRLF> 
      [other headers] 
      <CRLF> 
      (<tag> SP <Lemonade command> <CRLF> | literal ) 
      [(<tag> SP <Lemonade command> <CRLF> | literal )] 
    
   The Lemonade command MUST be plain text (7bit). 
    
   Multiple Lemonade commands MAY be sent on the same request. The 
   client must be able to deal with recovering from errors when commands 
   are batched. See RFC2442 Batch SMTP for a further discussion. In 
   general, if a command is expected to produce a synchronized literal 
   or continuation request, it MUST be the last command in the batch. 
    
   The Content-Type and X-Http-Binding headers are the only HTTP headers 
   that MUST be sent to a Lemonade server. Other headers such as Cache-
   Control MAY be included.  
    
   When the Lemonade server sends back a response it is in following 
   format: 
    
      HTTP/1.1 <HTTP Status Code> <CRLF>   
      Content-Type: application/vnd.lemonade.imap <CRLF> 
      X-Http-Binding: imap <CRLF> 
      <CRLF> 
      [<untagged responses>] 
      <tag> SP <Lemonade Server response> <CRLF> 
      [<untagged responses>] 
      <tag> SP <Lemonade Server response> <CRLF> 
    
   The Lemonade Server uses the following HTTP status codes, and what 
   each code indicates is given below: 
 
 
Maes                   Expires – December 2006               [Page 4] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
       
   - 200  
        -This indicates normal execution of the Lemonade commands from 
        an IMAP perspective.    The client should further parse the 
        response body to get the tagged responses to the commands and 
        process those accordingly. 
         
   - 401  
         - This indicates that the execution of the IMAP commands might      
         have been successful, but the session is no longer   
         authenticated. The client should try to reauthenticate to the 
         IMAP server, and then resend the commands. 
          
   - 5xx 
         - This indicates that at least one command was 
         malformed/protocol level error, or, a command could not 
         complete due to a problem in the IMAP server. In conforming to 
         HTTP semantics, this means the IMAP server responses such as 
         BAD or NO on a tagged response generate a HTTP 500 response 
         code.  Also, if the HTTP request includes batched commands 
         after the command which generates a continuation request or 
         synchronized literal, the server MUST generate a 5xx request.  
          
 
   When using HTTP to transfer IMAP commands and responses, the client 
   SHOULD utilize built-in features of HTTP to their advantage.  For 
   example, the client SHOULD use HTTPS instead of HTTP whenever 
   possible, since HTTPS has built in encryption and MAY have 
   compression capabilities.   
    
   HTTP can be used in both batch and stream modes.  Details about these 
   transport modes are given in the following two subsections. 
 
    
   2.1.1. 
          Non-Persistent HTTP for Batch Connectivity Mode 
    
   If the client uses a traditional HTTP connection (either by 
   establishing a different socket for each HTTP request to the Lemonade 
   server, or by reusing the same socket for all HTTP requests, but 
   sending each request in different HTTP commands), it has batch 
   connectivity to the server.  The client can issue as many commands as 
   it would like in one HTTP request to the server, and the server 
   responds by sending back one HTTP response with all the responses to 
   all the commands in the HTTP request.  With this connectivity mode, 
   the IDLE command nor any commands that depend on unsolicited 
   responses in a session. Other commands that use a continuation 
   response or synchronized literal cannot be issued unless they are the 
   last command in the batch. [LITERAL+] SHOULD be used to eliminate 
   synchronized literals when using APPEND. 
 
 
Maes                   Expires – December 2006               [Page 5] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
    
   In order for the server to identify separate HTTP requests as 
   belonging to the same session, a batch HTTP client needs to accept 
   cookies.  A session-id is passed in the cookie to identify the 
   session.   
    
   Example: the headers for a HTTP batch response after the client has 
   issued its first HTTP request to the server. 
    
      HTTP/1.1 <HTTP Status Code> <CRLF>   
      Content-Type: application/vnd.lemonade.imap <CRLF> 
      X-Http-Binding: imap <CRLF> 
      Set-Cookie:JSESSIONID=94571a8530d91e1913bfydafa; 
   path=/lemonade<CRLF> 
      <CRLF> 
      [<untagged responses>] 
      <tag> SP <Lemnade Server response> <CRLF> 
      [[<untagged responses>] 
      <tag> SP <Lemonade Server response> <CRLF>] 
    
    
   Example: the headers for a HTTP batch response after the client has 
   issued its first HTTP request to the server, with the final command 
   generating a continuation request. 
    
      HTTP/1.1 200 Ok <CRLF>   
      Content-Type: application/vnd.lemonade.imap <CRLF> 
      X-Http-Binding: imap <CRLF> 
      Set-Cookie:JSESSIONID=94571a8530d91e1913bfydafa; 
   path=/lemonade<CRLF> 
      <CRLF> 
      [<untagged responses>] 
      <tag> SP <Lemnade Server response> <CRLF> 
      +continuation-request 
    
    
   The client must then save this cookie and send it back to the server 
   with the next request in order for the server to reattach these 
   commands to the same session as the previous commands. 
    
      POST /lemonadePath HTTP/1.1 <CRLF> 
      Content-Type: application/vnd.lemonade.imap <CRLF> 
      X-Http-Binding: imap <CRLF> 
      Cookie: JSESSIONID=94571a8530d91e1913bfydafa 
      [other headers] 
      <CRLF> 
      <tag> SP <Lemonade command> <CRLF> 
      [<tag> SP <Lemonade command> <CRLF>] 
    
 
 
Maes                   Expires – December 2006               [Page 6] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
 
   2.1.2. 
          Using Persistent HTTP/HTTPS + Chunked Transfer Encoding for 
       Stream Connectivity Mode 
    
   It is possible to use persistent HTTP or persistent HTTPS plus 
   chunked-transfer-encoding so that the client and server can use 
   stream style communications. The client needs to open a persistent 
   HTTP connection and keep it active. In this case, the HTTP headers 
   must be sent the first time the client device opens the connection to 
   the Lemonade Server and these headers MUST set the transfer coding to 
   be chunk-encoded [RFC2616, Sec. 3.6.1]. All subsequent client-server 
   requests are written to the open connection, without needing any 
   additional HTTP headers. In this case, the client does not need to 
   accept cookies. 
    
   The client must send the HTTP headers one time only: 
    
      POST /lemonadeServletPath HTTP/1.1 <CRLF> 
      Content-Type: application/vnd.lemonade.imap <CRLF> 
      Connection: keep-alive <CRLF> 
      X-Http-Binding: imap <CRLF> 
      Pragma: no-cache <CRLF> 
      Transfer-Encoding: chunked <CRLF> 
       
   The server responds with the following header: 
    
      HTTP/1.1 <HTTP Status Code> <CRLF> 
      Cache-Control: private 
      Keep-Alive: timeout=15, max=100 (or other suitable setting) 
      Connection: Keep-Alive 
      X-Http-Binding: imap <CRLF> 
      Transfer-Encoding: chunked 
      Content-Type: application/vnd.lemonade.imap 
    
    
   Then the client can send a command anytime it wants with the 
   following format: 
      <length of Lemonade command, including bytes in CRLF> <CRLF> 
      <tag> SP <Lemonade command> <CRLF>  
      <CRLF> 
    
   And example of an actual client command is: 
      e <CRLF> 
      2 CAPABILITY<CRLF> 
      <CRLF> 
    
   The server responds to each command with as many untagged responses 
   as needed, and one tagged response, where each response is in the 
   format that follows: 
 
 
Maes                   Expires – December 2006               [Page 7] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
      <length of a single response, including bytes in CRLF> <CRLF> 
      <tagged or untagged response> <CRLF>  
      <CRLF> 
    
   An actual Server response might be: 
      d5 <CRLF> 
      * CAPABILITY IMAP4REV1 AUTH=LOGIN NAMESPACE SORT MULTIAPPEND 
   LITERAL+ UIDPLUS IDLE XORACLE X-ORACLE-LIST X-ORACLE-COMMENT X-
   ORACLE-QUOTA X-ORACLE-PREF X-ORACLE-MOVE X-ORACLE-DELETE ACL X-
   ORACLE-PASSWORD LDELIVER LZIP LCONVERT LFILTER LSETPREF LGETPREF 
   <CRLF>   <CRLF> 
      1b <CRLF> 
      2 OK CAPABILITY completed <CRLF> 
      <CRLF> 
     
    
   Note however that the HTTP protocol is in general not meant to be 
   used in such a way. To maintain such an open channel might be a 
   practical challenge to proxies, which might not forward the requests 
   chunk by chunk to the server, and meanwhile route responses back to 
   the client chunk by chunk. Consequently the session closes. Chunked 
   transfer encoding requests MAY not be honored by an HTTP proxy 
   server. In cases where such requests are denied, the client should be 
   prepared to use the non-chunked encoding technique from section 
   2.1.1.   
    
   The session may be automatically started again by the client after a 
   lost connection or by the server through out-of-band; after some 
   defined time-out.  
    
 
   2.1.3. 
          Using HTTP as a binding for SMTP 
 
      All of the techniques described in sections 2.1 may be used for 
   SMTP as well. The only difference between IMAP and SMTP will be the 
   HTTP URL used. Servers implementing the HTTP binding are expected to 
   differentiate between IMAP and SMTP protocol bodies via the URL. 
 
3. 
  Asynchronous Approaches 
 
   Some networks, such as satellite networks, may present challenges to 
   the HTTP request-response approach in the preceding chapter due to 
   extreme latency. Clients expecting near-synchronous response to IMAP 
   commands would face huge delays, and may inappropriately timeout too 
   soon, or provide a UI to the user that is geared around immediate 
   response which will expose long delays to end users. 
    
   Satellite networks resemble store-and-forward systems, it is thus 
   desirable to provide a mechanism for interacting with an IMAP 
 
 
Maes                   Expires – December 2006               [Page 8] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
   Lemonade server that is geared for asynchronous requests and 
   responses. 
    
   [IMAPURL] already provides a standard for encoding a series of IMAP 
   commands into a compact URL, and describes a subset of functionality 
   that is adequately suited to accessing email when roaming on 
   satellite networks.  
    
   3.1. 
        Transmission Methods 
    
   It is not in the scope of this document to describe the mechanism by 
   which IMAPURL payloads are sent through such networks (which are 
   typically proprietary) However, the end result should be an HTTP 
   request invoked on a server which decodes the IMAPURL payload and 
   processes the request on behalf of the client. 
    
   IMAPURLs of the form imap://<iserver>/path?query where iserver = 
   [iuserinfo "@"] host [":" port] must be rewritten into a URL of the 
   following form: 
    
   http://host:port/lemonade?imapurl=<enc-imapurl> 
    
   where <enc-imapurl> is imap://<iserver>/path?query encoded according 
   to standard HTTP url encoding. 
     
   3.2. 
        Authentication 
    
   <<Ray: TBD, Perhaps the Delay Tolerant Networking working group has 
   some material on authenticating over DTNs? Or perhaps a mechanism for 
   obtaining longer lived URLAUTH tokens which can be reused multiple 
   URLs within a time span?>> 
    
 
   3.3. 
        Response Payload 
    
   The response to any IMAPURL processed according to [IMAPURL] on the 
   server should be sent to the client as a set of raw IMAP responses. 
   However, [IMAPURL] suggests that the result of a search should be to 
   fetch all the messages returned from the SEARCH.  For the purposes of 
   this document, the result of an IMAPURL containing a search should be 
   the SEARCH response from the IMAP server, without performing any 
   FETCHes. 
    
    
4. 
  Tracking and Controlling Tunneled Traffic 
    
   In order to simplify deployment and provisioning issues, as well as 
   help network administrators track and control IMAP/SMTP traffic 
   wrapped in HTTP requests, the HTTP requests and responses of a 
 
 
Maes                   Expires – December 2006               [Page 9] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
   binding should provide a non-ambiguous way of recognizing binding 
   traffic. 
    
   It is therefore mandated that a "X-HTTP-Binding" HTTP header MUST 
   specified in all requests and responses. The header may take a value 
   of "imap" or "smtp" depending on the type of traffic being tunneled. 
    
    
5. 
  Security Considerations 
    
   The HTTPS protocol can and should be used to provide end-to-end 
   security where it is available when tunneling, especially because of 
   the existence of HTTP proxies. 
    
   Caching is also a concern, especially if HTTPS isn't used. The client 
   SHOULD use the HTTP Cache-Control directive (no-cache, no-store, 
   must-revalidate, or combinations thereof) to inform proxy servers, 
   origin servers, and client libraries not to cache or store the HTTP 
   response. To deal with HTTP 1.0 servers that may exist in the 
   network, Pragma: no-cache should be used as well. 
    
   Attacks on HTTP sessions and the HTTP server may also be a concern, 
   since the HTTP server is maintaining an authenticated session to the 
   IMAP server on behalf of the user in most cases. 
    
   Network administrators wishing to block stealth deployments of HTTP 
   IMAP bindings may block HTTP requests with Content-Type 
   application/vnd.lemonade.[imap|smtp]  via an application level 
   firewall and/or block any HTTP traffic with the X-Http-Binding header 
   defined. 
    
    
References 
    
   [DEPLOYMENTS] Gellens, R., " Deployment Considerations for lemonade-
   compliant Mobile Email", draft-ietf-lemonade-deployments-03.txt, June 
   2006. 
    
   [LEMONADEPROFILE] Maes, S.H. and Melnikov A., "Lemonade Profile", 
   draft-ietf-lemonade-profile-XX.txt, (work in progress). 
    
   [LUOTONEN] Luotonen, A., “Tunneling TCP based protocols through Web 
   proxy servers”, draft-luotonen-web-proxy-tunneling-01.txt, August 
   1998 
    
   [LITERAL+] Myers, J. “IMAP non-synchronizing literals”, RFC2088, 
   January 1997 
      http://www.ietf.org/rfc/rfc2088 
    
 
 
Maes                   Expires – December 2006              [Page 10] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
   [P-IMAP] Maes, S.H., Lima R., Kuang, C., Cromwell, R., Ha, V. and 
   Chiu, E., Day, J., Ahad R., Jeong W-H., Rosell G., Sini, J., Sohn S-
   M., Xiaohui F. and Lijun Z., "Push Extensions to the IMAP Protocol 
   (P-IMAP)", draft-maes-lemonade-p-imap-xx.txt, (work in progress). 
    
   [RFC2119] Brader, S.  "Keywords for use in RFCs to Indicate 
   Requirement Levels", RFC 2119, March 1997.  
      http://www.ietf.org/rfc/rfc2119 
    
   [RFC2442] Freed, N. et al. "The Batch SMTP Media Type", RFC 2442, 
   November 1998.  
      http://www.ietf.org/rfc/rfc2442  
    
   [RFC2616] Fielding, R. et al.  "Hypertext Transfer Protocol -- 
   HTTP/1.1", RFC 2616, June 1999.  
      http://www.ietf.org/rfc/rfc2616 
    
   [RFC2817] Khare, R., “Upgrading to TLS Within HTTP/1.1”, RFC2817, May 
   2000 
      http://www.ietf.org/rfc/rfc2817.txt, May 2000 
    
   [RFC3205] Moore, K. ”On the use of HTTP as a Substrate”, RFC 3205, 
   February 2002. 
   http://www.ietf.org/rfc/rfc3205 
    
   [RFC3501] Crispin, M. "IMAP4, Internet Message Access Protocol 
   Version 4 rev1", RFC 3501, March 2003. 
   http://www.ietf.org/rfc/rfc3501 
    
Future Work 
    
   - Detail normative statements on binding method to support versus 
   other options that were considered. 
 
 
 
Version History 
    
   Release 01 
      Change name and focus to TCP challenged environment 
      Emphasize usage in challenged network and platform environments 
      Added more examples of challenged environments 
      Discussion of IMAPURL for satellite networks, 
      New X-HTTP-Binding header 
      Normative statements 
       
   Release 00 
      Rename from firewall binding.  
     
 
 
Maes                   Expires – December 2006              [Page 11] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
     
Acknowledgments 
    
   The authors want to thank all who have contributed key insight and 
   extensively reviewed and discussed the concepts in this draft as well 
   as the authors of the early introduction of the binding concept in 
   [P-IMAP].  
    
Authors Addresses 
    
   Stephane H. Maes 
   Oracle Corporation 
   500 Oracle Parkway 
   M/S 4op634 
   Redwood Shores, CA 94065 
   USA 
   Phone: +1-650-607-6296 
   Email: stephane.maes@oracle.com 
    
   Ray Cromwell 
   Oracle Corporation 
   500 Oracle Parkway 
   Redwood Shores, CA 94065 
   USA 
 
   Nilo Mitra 
   Ericsson 
   Tel: +1 212-843-8451 
   Email: nilo.mitra@ericsson.com 
    
Intellectual Property Statement 
    
   The IETF takes no position regarding the validity or scope of any 
   Intellectual Property Rights or other rights that might be claimed to 
   pertain to the implementation or use of the technology described in 
   this document or the extent to which any license under such rights 
   might or might not be available; nor does it represent that it has 
   made any independent effort to identify any such rights.  Information 
   on the procedures with respect to rights in RFC documents can be 
   found in BCP 78 and BCP 79. 
    
   Copies of IPR disclosures made to the IETF Secretariat and any 
   assurances of licenses to be made available, or the result of an 
   attempt made to obtain a general license or permission for the use of 
   such proprietary rights by implementers or users of this 
   specification can be obtained from the IETF on-line IPR repository at 
   http://www.ietf.org/ipr. 
    

 
 
Maes                   Expires – December 2006              [Page 12] 

          <Lemonade in TCP Challenged Environments>            June 2006 
 
 
   The IETF invites any interested party to bring to its attention any 
   copyrights, patents or patent applications, or other proprietary 
   rights that may cover technology that may be required to implement 
   this standard.  Please address the information to the IETF at ietf-
   ipr@ietf.org. 
 
Disclaimer of Validity 
    
   This document and the information contained herein are provided on an 
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET 
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, 
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE 
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 
    
Copyright Statement 
    
   Copyright (C) The Internet Society (2006).  This document is subject 
   to the rights, licenses and restrictions contained in BCP 78, and 
   except as set forth therein, the authors retain all their rights. 
    
Acknowledgement 
    
   Funding for the RFC Editor function is currently provided by the 
   Internet Society. 
 






















 
 
Maes                   Expires – December 2006              [Page 13]