Checksum Compensation Options for UDP Options
draft-fairhurst-udp-options-cco-00

Document Type Active Internet-Draft (individual)
Last updated 2018-10-19
Stream (None)
Intended RFC status (None)
Formats plain text xml pdf html bibtex
Stream Stream state (No stream defined)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
Internet Engineering Task Force                             G. Fairhurst
Internet-Draft                                                  T. Jones
Intended status: Standards Track                                R. Zullo
Expires: April 22, 2019                           University of Aberdeen
                                                        October 19, 2018

             Checksum Compensation Options for UDP Options
                 draft-fairhurst-udp-options-cco-00.txt

Abstract

   This document describes a robust method for calculating checksums for
   use with UDP Options.  The new method proposes an alternative
   checksum calculation for coverage of the option space.  This is based
   on the IP checksum calculation, but uses an updated pseudoheader.
   The new method only checks the option portion of a UDP packet, but
   creates a checksum that compensates for the range of IP and UDP
   chekcsum validation methods that have been deployed, in this way the
   new method enhances the proability of NAPT traversal for packets that
   carry UDP-Options.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on April 22, 2019.

Copyright Notice

   Copyright (c) 2018 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents

Fairhurst, et al.        Expires April 22, 2019                 [Page 1]
Internet-Draft                  UDPO CCO                    October 2018

   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Middlebox Pathologies . . . . . . . . . . . . . . . . . . . .   3
   4.  Checksum Compensation Option  . . . . . . . . . . . . . . . .   4
     4.1.  Calculating the CCO . . . . . . . . . . . . . . . . . . .   6
     4.2.  Validating CCO  . . . . . . . . . . . . . . . . . . . . .   7
     4.3.  CCO Calculation Examples  . . . . . . . . . . . . . . . .   8
     4.4.  Interaction with other UDP Options  . . . . . . . . . . .   9
   5.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   9
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   9
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  10
   8.  Normative References  . . . . . . . . . . . . . . . . . . . .  10
   Appendix A.  Revision Notes . . . . . . . . . . . . . . . . . . .  10
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Introduction

   UDP Options [I-D.ietf-tsvwg-udp-options] adds support for transport
   options in UDP [RFC0768].  When UDP is carried in IP two length
   fields describe the UDP datagram, the IP transport carries a payload
   length and the UDP header carries the length of the UDP datagram.  In
   most datagrams currently forwarded by network devices the IP payload
   length is equal to the UDP length, UDP Options
   [I-D.ietf-tsvwg-udp-options] creates a surplus area by increasing the
   IP payload length while not varying the UDP length.  Transport
   Options are then added in this surplus area in the form of a TLV
   encoded list.

   The current specification for UDP permits sending datagrams with
   surplus data, but are not commonly observed, and many network devices
   assume that IP payload length is equal to UDP length and have used
   this value when calculating UDP checksums.  This leads to the case
   where some middlebox devices (e.g.  Firewalls, NAPT) and some
   endpoint implementations check or modify the UDP checksum in a way
   that leads to discard of UDP datagrams that carry UDP options.

   This document describes common pathologies of network devices that
   incorrectly calculate the UDP checksum and proposes a new UDP Option
   to compensate for incorrect UDP checksum calculation.
Show full document text