Internet Area WG                                               J. Touch
Internet Draft                                                  USC/ISI
Intended status: <Best Current Practice>                      M. Mathis
Expires: January 2009                                               PSC
                                                           July 7, 2008



                      IPv4 ID Uniqueness Requirements
                 draft-touch-intarea-ipv4-unique-id-00.txt


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 January 7, 2009.

Copyright Notice

   Copyright (C) The IETF Trust (2008).

Abstract

   The IPv4 Identification field enables fragmentation and reassembly.
   This document clarifies the meaning of this field in the absence of
   fragmentation, based on ubiquitous current practice.




Touch, Mathis          Expires January 7, 2009                 [Page 1]


Internet-Draft     IPv4 ID Uniqueness Requirements            July 2008


Conventions used in this document

   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 RFC-2119 [1].

Table of Contents


   1. Introduction...................................................2
   2. Current Requirements...........................................2
   3. Uses of the ID Field in IPv4...................................3
   4. IPv4 ID Exhaustion.............................................4
   5. Current Practice...............................................4
   6. Recommended Practice...........................................4
   7. Security Considerations........................................6
   8. IANA Considerations............................................6
   9. Acknowledgments................................................6
      9.1. Normative References......................................6
      9.2. Informative References....................................6
   Author's Addresses................................................7
   Intellectual Property Statement...................................7
   Disclaimer........................................................8

1. Introduction

   In IPv4, the IP Identification (ID) field is a 16-bit value that is
   unique for every packet for a given source address, destination
   address, and protocol, such that it does not repeat within the
   Maximum Segment Lifetime (MSL) [2][7]. All packets between a source
   and destination of a given protocol must have unique ID values over a
   period of an MSL, which is typically interpreted as two minutes (120
   seconds). This uniqueness is currently specified as required for all
   packets, regardless of fragmentation settings.

   The uniqueness of the IP ID is a known problem for high speed
   devices, because it limits the speed of a single protocol between two
   endpoints to 6.4 Mbps for typical MTUs of 1500 bytes [4]. This
   strongly indicates that the uniqueness of the IPv4 ID is moot.

   This document describes the current practice of relaxing the IPv4
   uniqueness requirement.

2. Current Requirements

   IP supports packet fragmentation, where large packets are split into
   smaller components to traverse links with limited maximum


Touch, Mathis          Expires January 7, 2009                 [Page 2]


Internet-Draft     IPv4 ID Uniqueness Requirements            July 2008


   transmission units (MTUs). Fragments are indicated in different ways
   in IPv4 and IPv6:

   o  In IPv4, the header contains three fields: Identification (ID),
      Offset, a "Don't Fragment" flag (DF), and a "More Fragments" flag
      (MF) [7]

   o  In IPv6, fragments are indicated in an extension header that
      includes an ID, Offset, and MF flag similar to their counterparts
      in IPv4 [3]

   IPv4 and IPv6 fragmentation differs in a few important ways. IPv6
   fragmentation occurs only at the source, so a DF bit is not needed to
   prevent downstream devices from initiating fragmentation. The IPv6
   fragment header is present only when a packet has been fragmented, so
   the fields - notably the ID field, as will be shown later - are not
   present for non-fragmented packets, and thus are meaningful only for
   fragments. Finally, the ID field is 32 bits, and unique per
   source/destination address pair for IPv6, whereas for IPv4 it is only
   16 bits and unique per source/destination/protocol triple.

   This document focuses on the IPv4 ID field issues, because in IPv6
   the field is larger and present only in fragments.

3. Uses of the ID Field in IPv4

   The IPv4 ID field was originally intended for fragmentation and
   reassembly. Within a given source address, destination address, and
   protocol, fragments of an original packet are matched based on their
   IP ID. This requires that IDs are unique within the address/protocol
   triple when fragmentation is possible (e.g., DF=0).

   The ID field has been discussed as useful in other ways. It can be
   used to detect and discard duplicate packets, e.g., at congested
   routers (see Sec. 3.2.1.5 of [2]).

   The ID field may also be useful in tunnels. ICMP along tunnels may
   return only a portion of the information needed by a tunnel ingress
   to relay information back to the packet source. Encapsulators may
   retain copies of recently sent packets, to enable ICMP relaying [6].

   These latter uses require that the IP ID be unique across all
   packets, not only when fragmentation is enabled.






Touch, Mathis          Expires January 7, 2009                 [Page 3]


Internet-Draft     IPv4 ID Uniqueness Requirements            July 2008


4. IPv4 ID Exhaustion

   With the maximum IPv4 packet size of 64KB, a 16-bit ID field that
   does not repeat within 120 seconds means that the sum of all TCP
   connections of a given protocol between two endpoints is limited to
   roughly 286 Mbps; at a more typical MTU of 1500 bytes, this speed
   drops to 6.4 Mbps [4]. This limit currently applies for all IPv4
   packets, regardless of whether fragmentation is enabled, used, or
   inhibited.

   Note that IPv6, even at typical MTUs, is capable of 18.7 Tbps when
   fragments are present, due to the larger 32-bit ID field. When
   fragmentation is not used, IPv6 speeds are not limited by the ID
   field uniqueness.

5. Current Practice

   Wireless Internet devices are frequently connected at speeds over 54
   Mbps, and wired links of 1 Gbps have been the default for several
   years. Although many end-to-end transport paths are congestion
   limited, these devices easily achieve 100+ Mbps application-layer
   throughput over LANs (e.g., disk-to-disk file transfer rates), and
   numerous throughput demonstrations have been performed with COTS
   systems at these speeds for over a decade. This strongly suggests
   that IPv4 ID uniqueness has been moot for a long time.

6. Recommended Practice

   There are two kinds of packets, defined herein, for which recommended
   practice is described:

   o  Atomic packets: packets not yet having been fragmented (MF=0 and
      offset=0) and for which further fragmentation has been inhibited
      (DF=1), i.e.: ((DF==1)&&(MF==0)&&(offset==0))

   o  Non-atomic packets: packets which have either already been
      fragmented (MF=1 or offset>0 or both), or for which fragmentation
      remains possible (DF=0), i.e.: ((DF==0)||(MF==1)||(offset>0)), or
      (equivalently), ~((DF==1)&&(MF==0)&&(offset==0)).

   Although at least one document suggests the ID field has other uses,
   it useful to confirm here that the ID field is defined only for
   fragmentation:

   o  Gateways and receiving hosts (or tunnel egresses using IP
      encapsulation) MUST ignore the contents of the IPv4 ID field for
      atomic packets.


Touch, Mathis          Expires January 7, 2009                 [Page 4]


Internet-Draft     IPv4 ID Uniqueness Requirements            July 2008


   Fragments that repeat the IP ID risk being reassembled incorrectly,
   especially when fragments are reordered or lost [9]. Although such
   errors may be detected at the transport layer, this results in
   excessive overall packet loss, as well as wasting network bandwidth.
   As a result, this document notes that:

   o  IPv4 ID of non-atomic packets MUST be unique per source IP,
      destination IP, and protocol tuple sufficient to support
      reassembly.

   Note that "sufficient to support reassembly" need not require unique
   IDs over a two minute interval. It should be sufficient that:

   o  IPv4 ID of non-atomic packets MUST NOT repeat within a given
      source, destination, and protocol tuple over the period that the
      receiver experiences fragment reordering.

   This suggests that the host employ rate limiting on each
   source/estination/protocol triple. The recommendations above are most
   appropriate at the host (or tunnel ingress), and can be difficult to
   enforce at routers. As a result, we recommend that for IPv4, as for
   IPv6:

   o  IPv4 fragmentation SHOULD be limited to the originating source,
      e.g., the host or tunnel ingress. IPv4 fragmentation SHOULD NOT be
      performed where the IPv4 ID field is not under direct control,
      e.g., at routers.

   Note, however, that it may not be possible for applications to know
   whether any of the above three requirements are satisfied at a host
   or on tunnels along a path (esp. those employing outer
   fragmentation). As a result, we recommend that:

   o  Applications that cannot ensure safe IPv4 ID generation and that
      allow DF=0 SHOULD employ integrity checks that would detect mis-
      reassembled fragments, e.g, as in SEAL [10]. E.g., applications
      SHOULD NOT use UDP without checksums [8], and SHOULD be very
      careful in their use of UDP-Lite [5] in such environments, even
      existing UDP and TCP checksums may not be sufficient [4].

   o  Applications SHOULD set DF=1 for all packets exiting a source
      host, regardless of whether those packets are fragmented at the
      source or not.






Touch, Mathis          Expires January 7, 2009                 [Page 5]


Internet-Draft     IPv4 ID Uniqueness Requirements            July 2008


7. Security Considerations

   This document attempts to address the security considerations
   associated with fragmentation in IPv4 [9].

   When the IPv4 ID is ignored on receipt (e.g., for atomic packets),
   its value becomes unconstrained; that field then more easily be used
   as a covert channel.

8. IANA Considerations

   There are no IANA considerations in this document.

   The RFC Editor should remove this section prior to publication

9. Acknowledgments

   This document was inspired by of numerous discussions among the
   authors, Jari Arkko, Lars Eggert, Dino Farinacci, and Fred Templin,
   as well as members participating in the Internet Area Working Group.

   This document was prepared using 2-Word-v2.0.template.dot.

9.1. Normative References

   [1]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
         Levels", BCP 14, RFC 2119, March 1997.

9.2. Informative References

   [2]   Braden, R., Ed., "Requirements for Internet Hosts -
         Communication Layers," RFC 1122 / STD 3, October 1989.

   [3]   Deering, S., R. Hinden, "Internet Protocol, Version 6 (IPv6)
         Specification," RFC 2460, December 1998.

   [4]   Heffner, J., M. Mathis, B. Chandler, "IPv4 Reassembly Errors at
         High Data Rates," RFC 4963, July 2007.

   [5]   Larzon, L-A., M. Degermark, S. Pink, L-E. Jonsson, Ed., G.
         Fairhurst, Ed.L., "The Lightweight User Datagram Protocol (UDP-
         Lite)," RFC 3828, July 2004.

   [6]   Perkins, C., "IP Encapsulation within IP," RFC 2003, October
         1996.




Touch, Mathis          Expires January 7, 2009                 [Page 6]


Internet-Draft     IPv4 ID Uniqueness Requirements            July 2008


   [7]   Postel, J., "Internet Protocol," RFC 791 / STD 5, September
         1981.

   [8]   Postel, J., "User Datagram Protocol," RFC 793 / STD 6, August
         1980.

   [9]   Savola, P., "MTU and Fragmentation Issues with In-the-Network
         Tunneling," RFC 4459, April 2006.

   [10]  Templin, F., Ed., "The Subnetwork Encapsulation and Adaptation
         Layer (SEAL)," (work in progress), draft-templin-seal-22, June
         2008.

Author's Addresses

   Joe Touch
   USC/ISI
   4676 Admiralty Way
   Marina del Rey, CA 90292-6695
   U.S.A.

   Phone: +1 (310) 448-9151
   Email: touch@isi.edu


   Matt Mathis
   PSC
   300 South Craig st.
   Pittsburgh PA, 15213
   U.S.A.

   Phone: +1 (412) 268-3319
   Email: mathis@psc.edu


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.




Touch, Mathis          Expires January 7, 2009                 [Page 7]


Internet-Draft     IPv4 ID Uniqueness Requirements            July 2008


   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.

   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

   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, THE IETF TRUST 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 IETF Trust (2008).

   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.

Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.














Touch, Mathis          Expires January 7, 2009                 [Page 8]