Intended status: Informational A.Eromenko September 2016
draft-eromenko-ipff-design-decisions-00

Document Type Active Internet-Draft (individual)
Last updated 2016-09-29
Stream (None)
Intended RFC status (None)
Formats plain text 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-DRAFT
"Internet Protocol Five Fields - Design Decisions", 
Alexey Eromenko, 2016-09-29,
<draft-eromenko-ipff-design-decisions-00.txt>
expiration date: 2017-03-29

Intended status: Informational
                                                              A.Eromenko
                                                          September 2016

             Internet Protocol "Five Fields": Design Decisions
            ===================================================

Abstract

   Goal of IP-FF: provide future growth, without design complexity of 
   IPv6. This document writes the design decisions behind IP-FF and 
   explains why they were done.

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

Copyright Notice

   Copyright (c) 2015 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. Overall architecture based on IPv4 (for easy code and network migration,
  and easy understanding by developers and network engineers)
!!!
1.2. Address space was designed to be big enough for the next several 
 hundred years *but* _optimized for human memory_, rather than computer 
 memory. 
 It turned out that 50-bit addresses are very good at it.
(computer memory is cheap nowadays, even if we use a 64-bit data field
for only 50-bits of actual data).
1.3. ARP stays; It's easy to understand and won't require massive 
  network configuration changes.
1.4. Links are required to support 1280 bytes MTU (I expect physical 
  networks to be compatible with IPv6 by this time. which mandates this
  size)

2. Port numbers stay 16-bit. While I considered 32-bit, I rejected this
  idea.
2.1. will push carriers towards carrier-grade NATs (CGNs), which is a 
  non-goal.
2.2. extra overhead of 4 bytes per packet. (0.27% slower for 1500 byte 
  packets)
2.3. I was unable to find major advantages.

3. Ports were moved from Layer 4 to Layer 3 header; which allows for:
3.1. Flow-based routing (via 5-tuple or 6-tuple rule).
3.2. Faster Firewalls
3.3. Simpler fragmentation for FDP
3.4. A bit higher overhead for protocols, that do not use 16-bit ports. 
  (a minor evil, but still.)

4. UDP protocol length field removal:
4.1. Is not needed, as TCP lacks length field, and does fine.
4.2. Allows for jumbo frames. 
4.3. Allows for a stronger checksum.

5. TCP-64-bit:
5.1. needed for faster speeds (1 Terabit or more - I envision for end-user 
  devices, at Earth distances. Lots of data in mid-air, unacknowledged).
5.2. Ensuring reliability at such speeds requires *much* stronger checksums.
* TCP protocol originally designed to guarantee reliability, and it's
16-bit checksum worked fine in the 80's and 90's with 56 kbit/s WAN speeds,
but is not adequate nowadays at gigabit speeds let alone future-networks at
terabit speeds. A stronger 64-bit checksum restores this original guarantee.

6. Type of Service stays for compatibility reasons

7. TTL/HTL (Hops-to-Live) was extended mostly due to my envision of future 
   network virtualization, where virtual routers and containers (network 
   namespaces) speak to each other.
For physical networks TTL of 255 I expect it to be  enough for this century.

8. Payload length was reduced to 14-bits, because it's enough to handle 
 both Ethernet Jumbo frames (9 KB) as well as WiFi frames (8 KB).

8.a. A standard IP-FF extension provided for Jumbograms (4 MiB size
   IPFF packets), just-in-case.

9. Compatibility: IP-FF networks are theoretically backwards compatible with 
  IPv4 networks over a NAT router.

10. Extensions mechanism was completely rewritten for simplicity (of 
understanding).

11. Fragmentation: moved to Layer 4.
* TCP doesn't need a fragmentation, due to sliding windows.
Show full document text