Internet DRAFT - draft-netaddress74bit-tcox

draft-netaddress74bit-tcox




netaddress64bit                                               T. Cox
Internet Draft
Intended Status: Standards Track               Individual Submission
Expires: March 24, 2014                           September 24, 2013


	A Proposal for increasing the Network Address Space of IPv4
		draft-netaddress74bit-tcox-00.txt


Abstract

   Proposal to allow 64-bit or 32-bit Network Addressing
   in a single and otherwise unchanged Internet Protocol
   Stack

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 http://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 March 23, 2014.

Copyright Notice

   Copyright (c) 2013 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
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   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.


1. The Intended Improvement

   This proposal optionally prepends 32 bits to existing 32-bit
   internet address in the IP header. The intention is to allow
   all existing 32-bit addresses to be used without change and
   to make a further 18,446,744,073,709,551,616 network addresses
   available

   The change to hosts and routers is minimal, but if it is not
   made, the unchanged hosts and routers will be able to exchange
   with all other hosts and routers only those datagrams which
   have 32-bit source and destination address

   All features of Internet Protocol Version 4 continue to be
   used unchanged



2. Implementation

   The proposal consists in two Internet Protocol Datagram Header
   Options, the source address prefix and the destination address
   prefix

   The data field length of the address prefix options could be
   any value from 1 to 20 octets, but it is proposed that it be
   always 4 octets. This is because simplicity of implementation
   may realistically be perceived as desirable and advantageous



3. IP Datagram Header Address Prefix Option


octet 0        1        2        3        4        5
      +--------+--------+--------+--------+--------+--------+
      |optionID|    4   |     IP address prefix 32 bits     |
      +--------+--------+--------+--------+--------+--------+



4. API

   It is proposed that applications exchange the 32 prefix bits
   with the socket service via 32 bits of the structure sockaddr_in
   which are currently always zero. Those bits shall continue
   to be zero where a 32-bit address is used


   struct sockaddr_in

octet 0        1        2        3        4        5        6        7
      +--------+--------+--------+--------+--------+--------+--------+--------+
      |      AF_INET    |       port      |    IP address low-order 32 bits   |
      +--------+--------+--------+--------+--------+--------+--------+--------+
      |   IP address high-order 32 bits   |00000000 00000000 00000000 00000000|
      +--------+--------+--------+--------+--------+--------+--------+--------+
octet 8        9        10       11       12       13       14       15




5. Transport Layer Pseudo-Headers for Checksum

   It is proposed that the whole network addresses be still
   included in the pseudo-header which seeds the checksum of
   UDP and TCP

   On bind() and connect() the socket service associates 64 network address
   bits with the UDP socket or the TCP connection

   On sendto() the socket service uses 64 bits from sockaddr_in and
   on send() the socket service uses 64 bits from the structure
   modelling the connection

   UDP and TCP shall include 64 address bits in transmitted checksums.
   This causes no change in the checksum values of User Datagrams
   and TCP segments using only 32 bits of source and destination address

   Internet Protocol must on transmission add the source address prefix
   option if any of the high-order 32 source address bits is 1

   Internet Protocol must on transmission add the the destination address
   prefix option if any of the 32 high-order destination address bits is 1

   The pseudo-header of received reassembled datagrams may be
   perceived as an IP service requested by the upper protocol



   Pseudo-Header

octet 0        1        2        3        4        5        6        7
      +--------+--------+--------+--------+--------+--------+--------+--------+
      | source address high-order 32 bits |  source-address low-order 32 bits |
      +--------+--------+--------+--------+--------+--------+--------+--------+
      | destination address high 32 bits  |  destination address low 32 bits  |
      +--------+--------+--------+--------+--------+--------+--------+--------+
      |IP payload octets|  upper protocol |
      +--------+--------+--------+--------+
octet 16       17       18       19






Authors' Addresses

        Tim Cox
        Postfach 285
        CH-3052 Zollikofen
        Switzerland

        EMail: TimMilesCox@gmx.ch