<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced.
     An alternate method (rfc include) is described in the references. -->
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-eckel-aeon-problem-statement-00"
     ipr="trust200902">
  <!--  category values: std, bcp
, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN"
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the
         full title is longer than 39 characters -->

    <title abbrev="AEON Problem Statement and Req">Application Enabled Open
    Networking: Problem Statement and Requirements</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Charles Eckel" initials="C." surname="Eckel">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>170 West Tasman Drive</street>

          <city>San Jose</city>

          <region>CA</region>

          <code>95134</code>

          <country>USA</country>
        </postal>

        <email>eckelcu@cisco.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Tirumaleswar Reddy" initials="T." surname="Reddy">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>Cessna Business Park, Varthur Hobli</street>

          <street>Sarjapur Marathalli Outer Ring Road</street>

          <city>Bangalore</city>

          <region>Karnataka</region>

          <code>560103</code>

          <country>India</country>
        </postal>

        <email>tireddy@cisco.com</email>
      </address>
    </author>

    <date/>

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill
         in the current day for you. If only the current year is specified, xml2rfc will fill
	 in the current day and month for you. If the year is not the current one, it is
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <keyword>aeon visibility heuristics</keyword>

    <abstract>
      <t>Identification and treatment of application flows are critical for
      the successful deployment and operation of applications. Historically,
      this functionality has been accomplished to the extent possible using
      heuristics, which inspect and infer flow characteristics. Heuristics may
      be based on port ranges, network separation, or deep packet inspection
      (DPI). But many application flows in current usages are dynamic,
      time-bound (short lived for some of them), possibly encrypted (TLS for
      signaling), peer-to-peer, possibly asymmetric, and used on non-dedicated
      devices, any combination of which renders such techniques less effective
      or results in compromises to application security or user privacy.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Networks today, whether public or private, are challenged with
      demands to support rapidly increasing amounts of traffic. New channels
      for creating and consuming rich media are deployed at a rapid pace.
      Pervasive video and access on demand are becoming second nature to
      consumers. Communication applications make extensive use of rich media,
      placing unprecedented quality of experience demands on the network.</t>

      <t>Now more so than ever before, identification and treatment of
      application flows are critical for the successful deployment and
      operation of applications. These applications are based on wide range of
      signaling protocols and deployed by a diverse set of application
      providers that is not necessarily affiliated with the network providers
      across which the applications are used.</t>

      <t>Historically, identification of application flows has been
      accomplished using heuristics, which inspect and infer flow
      characteristics. Heuristics may be based on port ranges, network
      separation, or deep packet inspection (DPI). Each of these techniques
      suffers from a set of limitations, particularly in the face of
      challenges on the network outlined previously.</t>

      <t>Port based solutions suffer from port overloading and inconsistent
      port usage. Network separation techniques like IP subnetting are error
      prone and increase network management complexity. DPI is computationally
      expensive and becomes a greater challenge with the wider adoption of
      encrypted signaling and secured media. An additional drawback of DPI is
      that any insights are not available, or need to be recomputed, at
      network nodes further down the application flow path.</t>
    </section>

    <section title="Typical Workflows">
      <t>Various heuristic based approaches are used prevalently and
      successfully for two types of work flows:<list counter="1"
          style="numbers">
          <t>Provide network operators with visibility into traffic for
          troubleshooting, capacity planning, accounting and billing, and
          other off network work flows. This is done by exporting observed
          traffic analysis via protocols such as IPFIX and SNMP.</t>

          <t>Provide differentiated network services for specific traffic
          according to network operator defined rule sets, including policing
          and shaping of traffic, providing admission control, impacting
          routing, and permitting passage of specific traffic (e.g. firewall
          functions).</t>
        </list></t>
    </section>

    <section title="Limitations of Existing Solutions">
      <t>These typical work flows, visibility and differentiated network
      services, are critical in many networks. However, their reliance on
      inspection and observation limits the ability to enable these work flows
      more widely. Reasons for this include the following:<list
          style="symbols">
          <t>Simple observation based classification based on TCP/UDP port
          numbers often result in incorrect results due to port overloading
          (i.e. ports used by applications other than those claiming the port
          with IANA).</t>

          <t>More and more traffic is encrypted, rendering DPI impossible, or
          much more complex, and sometimes at the expense of privacy or
          security (e.g. need to share encryption keys with intermediary
          performing DPI).</t>

          <t>Visibility generally requires inspecting the signaling traffic of
          applications. This traffic may flow through a different network path
          than the actual application data traffic. Impacting the traffic
          behavior is ineffective in those scenarios.</t>

          <t>Extensions to signaling protocols can result in false negatives
          or false positives during inspection.</t>

          <t>Network services leveraging DPI traffic classification impact the
          application behavior by impacting its traffic, but they do not
          provide explicit feedback to the application. This results in a lost
          opportunity for the application to gain insight and adjust its
          operation accordingly.</t>
        </list></t>
    </section>

    <section title="Efforts in Progress">
      <t>There are a variety of existing and evolving signaling options that
      can provide explicit application to network signaling and serve the
      visibility and differentiated network services work flows where
      heuristics are currently being used. It seems clear that there will be
      no single one-protocol-fits-all solution. Every protocol is currently
      defined in its own silo, creating duplicate or inconsistent information
      models. This results in duplicate work, more operational complexity and
      an inability to easily convert information between protocols to easily
      leverage the best protocol option for each specific use case. Examples
      of existing and evolving signaling options include the following:<list
          style="symbols">
          <t>RSVP is the original on path signaling protocol standardized by
          the IETF. It operates on path out-of-band and could support any
          transport protocol traffic (it currently supports TCP and UDP). Its
          original goal was to provide admission control. Arguably, its
          success was impacted by its reliance on router-alert because this
          often leads to RSVP packets being filtered by intervening networks.
          To date, more lightweight signaling work flows utilizing RSVP have
          not been standardized within the IETF.</t>

          <t>NSIS (next Steps in Signaling) is the next iteration of RSVP-like
          signaling defined by the IETF. Because it focused on the same
          fundamental work flow as RSVP admission control as its main driver,
          and because it did not provide significant enough use-case benefits
          over RSVP, it has seen even less adoption than RSVP.</t>

          <t>DiffServ style packet marking can help provide QoS in some
          environments but DSCP markings are often modified or removed at
          various points in the network or when crossing network
          boundaries.</t>

          <t>STUN is an on path, in-band signaling protocol that could easily
          be extended to provide signaling to on path network devices because
          it provides an easily inspected packet signature, at least for
          transport protocols such as UDP. Through its extensions TURN and
          ICE, it is becoming quite popular in application signaling driven by
          the initial use-case of providing NAT and firewall traversal
          capabilities and determining the best local and remote addresses for
          peer-to-peer connectivity (ICE).</t>

          <t>Port Control Protocol (PCP) provides a mechanism to describe a
          flow to the network. The primary driver for PCP has been creating
          port mappings on NAT and firewall devices. When doing this, PCP
          pushes flow information from the host into the network (specifically
          to the network's NAT or firewall device), and receives information
          back from the network (from the NAT or firewall device). Unlike the
          prior protocols, it is not meant to be used on path end-to-end but
          rather independently on one "edge" of a traffic flow. It is
          therefore an attractive alternative because it allows the
          introduction of application to network signaling without relying on
          the remote peer. This is especially useful in multi-domain
          communications.</t>

          <t>Interface to the Routing System (I2RS) is a working group
          chartered to provide interfaces for management applications, network
          controllers, and user applications to make specific demands on the
          network.</t>

          <t>Abstraction and Control of Transport Networks (ACTN) is a
          non-working group mailing list intended to enable discussion of the
          architecture, use-cases, and requirements that provide abstraction
          and virtual control of transport networks to various
          applications/clients.</t>

          <t>Prefix coloring has been proposed for use in HOMENET and 6MAN
          working groups to provide differentiated services to applications
          based on its IP address.</t>
        </list></t>
    </section>

    <section title="Requirements">
      <t>Rather than encourage independent, protocol specific solutions to
      this problem, this draft calls for a protocol and application
      independent solution that can be applied in a consistent fashion across
      a variety of protocols. The requirements are:<list style="hanging">
          <t hangText="Req-1:">Allow applications to explicitly signal their
          flow characteristics to the network.</t>

          <t hangText="Req-2:">Provide network nodes visibility to application
          flow characteristics.</t>

          <t hangText="Req-3:">Enable network nodes to contribute to
          application flow descriptions.</t>

          <t hangText="Req-4:">Allow applications to receive resulting flow
          descriptions as feedback from the network.</t>

          <t hangText="Req-5:">Complement existing heuristic based
          mechanisms.</t>

          <t hangText="Req-6:">Provide differentiated service for both
          directions of a flow, including flows that cross administrative
          boundaries.</t>

          <t hangText="Req-7:">Provide mechanism to authenticate and authorize
          endpoints/applications to signal flow characteristics.</t>

          <t hangText="Req-8:">Provide mechanism for integrity and replay
          protection of messages exchanged between the application and the
          network.</t>
        </list></t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors thank Toerless Eckert, Reinaldo Penno, Dan Wing, Amine
      Choukir, and Paul Jones for their contributions to this draft.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->
  </back>
</rfc>
