IAB                                                         B. Carpenter
Internet Draft                                                R. Austein
February 2002                                                  (editors)



     Recent Changes in the Architectural Principles of the Internet



                             Copyright Notice

             If published as an RFC this document will become
     Copyright (C) The Internet Society (2002).  All Rights Reserved.



                                 Abstract

                       draft-iab-arch-changes-00.txt

   In 1996, the IAB published RFC 1958, entitled "Architectural
   Principles of the Internet."  The Internet has grown and evolved
   since then, and this document records the impact of this evolution on
   the principles laid down previously. This first draft is issued for
   discussion by the IETF community.



Status of this Memo


   This document is an Internet-Draft and is subject to all provisions
   of Section 10 of RFC2026.

   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/1id-abstracts.html

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html













IAB                       Expires August 2002                   [Page 1]


Internet Draft  Changes in the Architectural Principles   February 2002


   Table of Contents:

      Status of this Memo.............................................1
      1. Introduction.................................................3
      2. The End-to-End Argument and Middleboxes......................3
      2.1. NATs as a Special Case of Middleboxes......................4
      3. Internationalisation.........................................5
      4. Overextension................................................6
      5. A New External Issue.........................................7
      6. Security Considerations......................................7
      Non-normative References........................................7
      Acknowledgements................................................8
      Editors' Addresses..............................................9
      Full Copyright Statement........................................9











































IAB                       Expires August 2002                   [Page 2]


Internet Draft  Changes in the Architectural Principles   February 2002


1. Introduction

   In 1996, the IAB published RFC 1958, entitled "Architectural
   Principles of the Internet" [RFC 1958].  The Internet has grown
   dramatically and evolved substantially since then, and this document
   attempts to record the impact of this evolution on the principles
   laid down previously.

   Indeed, the very first section of [RFC 1958] is entitled "Constant
   Change" and it was expected that the document would require
   revisiting.  Although the principles are still fundamentally sound,
   some of them need additional explanation and refinement to match
   current realities.  Three main areas are of concern. Also, one new
   principle has arisen.

   From here on, it is assumed that the reader is familiar with [RFC
   1958].  Principles that are not mentioned in the present document are
   still regarded as fully valid.



2. The End-to-End Argument and Middleboxes

   The description of the end-to-end argument in [RFC 1958] does not
   take into account the concerns about transparency [RFC 2775, RFC
   2956] and the related issues surrounding NATs [RFC 2993, RFC 3022,
   RFC 3027] and intermediaries or middleboxes [RFC 3234, RFC 3040].
   These topics have stimulated much activity in the IETF in recent
   years, and this work has attracted some attention in other forums
   [Clark].

   We can state that the traditional end-to-end argument still applies,
   both as an abstract design principle, and concretely to all cases
   where a single transport connection (unicast or multicast) is
   considered.  However, in cases where an application data flow passes
   through multiple transport connections and may even be modified en
   route by middleboxes, the argument applies in a more subtle way. In
   the presence of middleboxes, it is no longer possible to assume that
   because TCP is reliable, the end-to-end path is reliable. Also, state
   in the middleboxes may be lost during failures. To obtain reliability
   and robustness, more sophisticated techniques than those employed by
   TCP are needed, possibly approaching the complexity of transactional
   two-phase commit. Similarly, IP or Transport Level security no longer
   guarantees end-to-end security.  Security mechanisms above the
   network itself are needed in addition.

   One way to look at the problem is that users do still care very much
   about the end-to-end principle, but only at layers where they
   understand how preservation of semantics matters to them.  For
   example: loss of TCP's end-to-end data integrity would matter a great
   deal to most users, but loss of an ability they've never used (such
   as a new, genuine peer-to-peer application that requires full
   transparency) would be invisible. So the end-to-end principle is
   still valid, but its realisation cannot be limited to the transport
   layer.


IAB                       Expires August 2002                   [Page 3]


Internet Draft  Changes in the Architectural Principles   February 2002


   More concretely, in the presence of middleboxes, applications are
   often forced to use application-layer handshakes to ensure
   reliability and robustness. See SMTP delivery confirmation and
   stateful SIP proxies [RFC 2543] as examples. This is the end-to-end
   principle, recursed further to the "real" ends to cover cases where
   it no longer applies to an end-to-end IP path. In some cases even
   application state may be temporarily stored in the middle of the
   network. The duration of this state varies widely: for example, RSVP
   soft state lasts for the duration of the reservation, while SIP state
   only lasts for one transaction, not for the duration of the session.
   If an RSVP soft state box dies in mid-flow, the flow is perturbed
   until the soft state is reconstructed, which is not true for SIP and
   SMTP.

   The idea of fate-sharing survives this recursion, but requires that
   all application state created in middleboxes must be capable of re-
   creation after failure. Additionally, to support this requirement,
   where a function cannot be fulfilled completely, reliably and
   securely by two endpoints of a conversation, the necessary
   middleboxes to fulfil the function should be explicit partners in
   explicit communication with at least one endpoint (or, by recursion
   of the same principle, with an intermediate middlebox). In other
   words, middleboxes should not be invisible, because their failures
   need to be detected and dealt with by their communication partners.

       A--------M1-------------M2-------------Z
                 \                           /
                  \                         /
                   M3----------------------/

   In this example, suppose a conversation between A and Z requires
   intervention by middleboxes M1, M2 and M3, with the creation of soft
   state in those boxes.  To create this state, explicit communication
   about the A-Z conversation may be required between each of the
   following pairs: (A, M1), (M1, M2), (M2, Z), (M1, M3), and (M3,Z).
   This will allow for recreation of soft state in M1, M2 and M3 (or
   their backups) in all failure cases except total failure of A or Z;
   thus the fate-sharing principle is preserved.

   Subtle effects can occur when the middlebox actually modifies the
   application data stream in some way, i.e. becomes an active agent in
   destroying data path integrity. Specific concerns of this kind are
   discussed in [RFC 3238].



2.1. NATs as a Special Case of Middleboxes

   The specific case of NAT middleboxes has led to much anguish, due to
   the number of instances (notoriously TCP and IPSEC) in which end-to-
   end integrity depends on the value of IP addresses. In other cases
   (such as H.323) the protocol itself assumes address transparency.
   NATs specifically cause breaches of one of the principles in [RFC
   1958]:
        "Addresses must be unambiguous (unique within any scope where they


IAB                       Expires August 2002                   [Page 4]


Internet Draft  Changes in the Architectural Principles   February 2002


         may appear)."
   [RFC 2993] goes into detail, and makes a strong case for address
   translation being a dead end in the architecture. Unfortunately,
   while we remain convinced that it is a dead end, it is crowded with
   users, and workarounds are being sought, especially by the MIDCOM WG.
   These workarounds may produce their own architectural issues [unsaf].
   It remains a fact that today, NAT inhibits progress beyond the simple
   Web client/server model, and that the only well understood solution
   that definitively fixes this problem is general adoption of a larger
   address space.

   [RFC 1958] also states that:
        "Upper layer protocols must be able to identify end-points
         unambiguously. In practice today, this means that addresses must be
         the same at start and finish of transmission."
   Again, NATs can cause violations of this principle. However, the new
   SCTP transport protocol [RFC 2960] may provide a partial solution by
   handling multiple addresses for a single connection. There have also
   been proposals to allow TCP connections to update their endpoint
   addresses [Snoeren].

   One well-established aspect of IP addresses that has become more
   troublesome recently [RFC 2956] is that they combine two functions:
   that of an "endpoint identifier" and a "locator". Such functional
   overloading could be considered a violation of an important design
   principle (see Section 4 below).  Of course there were (and are) good
   pragmatic engineering reasons for this choice. Nevertheless, if it
   was possible to split endpoint identifiers from locators, many of the
   problems currently associated with NATs, route aggregation,
   multihoming, and renumbering would be fundamentally reformulated.
   Despite recent research activity in this area, it remains uncertain
   whether this would in fact simplify the problems just cited, or
   merely move them to a different part of the Internet architecture.

   The issue identified here has a parallel closer to the applications
   layer.  We have several efforts, in one form or another, to assign
   URI types to all protocols and then permit naming URIs (e.g., a NAPTR
   record ultimately maps a name into a URI).  But, historically, our
   names and addresses bind to to a network object, such as a host, and
   we use port numbers to identify protocols and protocol listeners.
   But URIs aren't like that -- they typically bind to a (host,
   protocol) pair or something equivalent to it.  And, through that
   evolution, we are in danger of losing the host:port model  That has
   its own set of implications, some of which may even be good ones, but
   it is another evolving architectural change whose implications are
   not completely understood.



3. Internationalisation

   [RFC 1958] states that:

        "Public (i.e. widely visible) names should be in case-independent
         ASCII.  Specifically, this refers to DNS names, and to protocol


IAB                       Expires August 2002                   [Page 5]


Internet Draft  Changes in the Architectural Principles   February 2002


         elements that are transmitted in text format."

   This was not intended to diminish the importance of multiple
   character sets for users of the Internet. It was a simple statement
   of the need for a lingua franca (indeed, ASCII is very close to being
   the character set of the original lingua franca). Since 1996, the
   IETF has studied character set issues in general [RFC 2130] and made
   specific recommendations for the use of a standardised approach [RFC
   2277]. In fact, the situation is complicated by the fact that some
   uses of text are hidden entirely in protocol elements and need only
   be read by machines, while other uses are intended entirely for human
   consumption. Many uses lie between these two extremes, which leads to
   conflicting implementation requirements.

   For the specific case of DNS, a working group on internationalisation
   is in progress. A fundamental requirement in this work is to not
   disturb the current use and operation of the domain name system, and
   for the DNS to continue to allow any system anywhere to resolve any
   domain name. This leads to some very strong requirements for
   backwards compatibility with the existing ASCII-only DNS. Yet since
   the DNS has come to be used as if it was a directory service, domain
   names are also expected to be presented to users in local character
   sets. Furthermore, users want them in forms that can be interpreted
   locally as words. Satisfying this requirement simultaneously with
   those for backwards compatibility and universal name resolution is
   not easy.

   This document is not intended to resolve these complex and difficult
   issues.  But the principle that names encoded in a text format within
   protocol elements must be universally decodable (i.e. encoded in a
   globally standard format with no intrinsic ambiguity) will not
   change. At some point, it is possible that this format will no longer
   be case-independent ASCII.



4. Overextension

   There has been a strong tendency in the last few years to overload
   some designs with functionality that was not originally anticipated,
   with resulting operational complexities. One can argue that [RFC
   1958] covers this point by stating "Keep it simple." However, it
   should be stated explicitly that protocols and systems should not be
   stretched beyond their reasonable design parameters until scaling,
   reliability and security isssues have been resolved beyond doubt.

   A nuance is that two different interpretations are possible:

    1) Functional overloading considered harmful.

    2) Extensible protocols have limits.

   Both of these interpretations are true in various cases. Examples
   where one or the other might apply include DNS [dnsrole], MPLS, and
   BGP. It is hard to give precise criteria for the safe limits to


IAB                       Expires August 2002                   [Page 6]


Internet Draft  Changes in the Architectural Principles   February 2002


   overloading or extension. In some cases, overloading or extending a
   protocol may reduce total complexity by avoiding the creation of a
   new protocol; in other cases a new ad hoc protocol might be the
   simpler solution.

   There is a subtle line between overloading and re-use. We have a
   number of re-useable technologies, including component technologies
   specifically designed for re-use. Examples include SASL, BEEP and
   APEX. On the other hand, re-use should not go so far as to turn a
   protocol into a Trojan Horse, as has happened with HTTP [RFC 3205].



5. A New External Issue

   Section 5 of [RFC 1958], "External Issues", deals with a number of
   principles where the IETF's work touches on non-technical issues.

   The IETF Policy on Wiretapping [RFC 2804] adds such a principle that
   is not included in [RFC 1958]: the IETF has decided not to consider
   legal requirements for wiretapping in certain jurisdictions as part
   of the process for creating and maintaining IETF standards. That RFC
   sets out the reasons for the new principle, e.g. that adding a
   requirement for wiretapping will make affected protocol designs
   considerably more complex.

   As with all principles of the architecture, this one will no doubt
   require review in the future.



6. Security Considerations

   This document does not discuss issues directly affecting the security
   of the Internet.  However, it is worth noting that since [RFC 1958]
   was published, the requirement for all Internet protocols to have an
   adequate security solution has become more important than ever.



Non-normative References

   [RFC 1958] Architectural Principles of the Internet. B. Carpenter,
   Ed.. June 1996.

   [RFC 2130] The Report of the IAB Character Set Workshop held 29
   February - 1 March, 1996. C. Weider, C. Preston, K. Simonsen, H.
   Alvestrand, R.  Atkinson, M. Crispin, P. Svanberg. April 1997.

   [RFC 2277] IETF Policy on Character Sets and Languages. H.
   Alvestrand.  January 1998.

   [RFC 2543] SIP: Session Initiation Protocol. M. Handley, H.
   Schulzrinne, E. Schooler, J. Rosenberg. March 1999.



IAB                       Expires August 2002                   [Page 7]


Internet Draft  Changes in the Architectural Principles   February 2002


   [RFC 2775] Internet Transparency. B. Carpenter. February 2000.

   [RFC 2804] IETF Policy on Wiretapping. IAB, IESG. May 2000.

   [RFC 2956] Overview of 1999 IAB Network Layer Workshop. M. Kaat.
   October 2000.

   [RFC 2960] Stream Control Transmission Protocol. R. Stewart, Q. Xie,
   K. Morneault, C. Sharp, H. Schwarzbauer, T. Taylor, I. Rytina, M.
   Kalla, L. Zhang, V. Paxson. October 2000.

   [RFC 2993] Architectural Implications of NAT. T. Hain. November 2000.

   [RFC 3022] Traditional IP Network Address Translator (Traditional
   NAT). P. Srisuresh, K. Egevang. January 2001.

   [RFC 3027] Protocol Complications with the IP Network Address
   Translator. M. Holdrege, P. Srisuresh. January 2001.

   [RFC 3040] Internet Web Replication and Caching Taxonomy. I. Cooper,
   I. Melve, G. Tomlinson. January 2001.

   [RFC 3205] On the use of HTTP as a Substrate. K. Moore.  February
   2002.

   [RFC 3234] Middleboxes: taxonomy and issues. B. Carpenter, S. Brim.
   February 2002.

   [RFC 3238] IAB Architectural and Policy Considerations for Open
   Pluggable Edge Services. S. Floyd, L. Daigle. January 2002.

   [dnsrole] Role of the Domain Name System. J. Klensin.  Work in
   progress, 2001 (draft-klensin-dns-role-01.txt)

   [unsaf] IAB Considerations for UNilateral Self-Address Fixing
   (UNSAF).  IAB. Work in progress, 2002 (draft-iab-unsaf-
   considerations-01.txt)

   [Clark] D. Clark, M. Blumenthal, "Rethinking the Design of the
   Internet: The End-to-end Arguments vs. the Brave New World",
   Telecommunications Policy Research Conference, September 2000,
   available via http://www.tprc.org/

   [Snoeren] Alex C. Snoeren, David G. Andersen and Hari Balakrishnan,
   "Fine-Grained Failover Using Connection Migration," USENIX (San
   Francisco), March 2001.



Acknowledgements

   This document is a collective work of the Internet community,
   published by the Internet Architecture Board. Special thanks to <your
   name could go here>.



IAB                       Expires August 2002                   [Page 8]


Internet Draft  Changes in the Architectural Principles   February 2002


Editors' Addresses


      Brian E. Carpenter
      IBM Zurich Research Laboratory
      Saeumerstrasse 4
      8803 Rueschlikon
      Switzerland

      Email: brian@hursley.ibm.com

      Rob Austein
      InterNetShare, Incorporated
      325M Sharon Park Drive, Suite 308
      Menlo Park, CA  94025
      USA

      Email: sra@hactrn.net



Full Copyright Statement

   PLACEHOLDER for full ISOC Copyright Statement

































IAB                       Expires August 2002                   [Page 9]