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-netaddress64bit-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