Rational for Variable Length Addresses Peter S. Ford Los Alamos National Laboratory peter@lanl.gov +1 505 662 3761 Toronto IETF 26 July 1994 ======== Outline of Talk Get some scope of the problem domain What we know What we don't know Look at the design space. Why Variable Length Addresses (VLA) meet these requirements w/impact on IPng evaluated. ======== What We Know Datagram Network, source and destination addresses Packet Forwarding Functionality longest prefix match some kind of source routing appears likely Host functionality address used for lookup of TCB, speed is important (hash functions, etc.) Bits are not free (bandwidth and memory) Addresses are used in a variety of environments: serverless vs serverfull autoconfig private vs global nets local vs global traffic source routing through mesh of providers Need to support very flexible address assignment, history indicates that any inconvenience in this area results in private address spaces (they opt out). ======== What is Encoded in Addresses Unicast addresses end systems global (routing structure coded in address) local (fairly flat--ap and go) Routing domains (cluster addresses) used for domain by domain routing (provider selection) Multicast addresses Design of address length has been trivialized to: "one size fits all" (and what is the size?...) ======== What We Don't Know number of systems? hosts processes disposable devices (phones, consumer electronics, set top box, etc.) providers ??? what is NL addressable shape of addresses # of nesting/levels for providers # of nesting/levels of address admin local structure of routing flat vrs hierarchical vs ??? routing delegated addressing plan vs single integrated plan (bottom up vs top down) What is needed for forwarding the packet to its destination's location vs how you refer to/identify the object? ======== Design Space We are discussing the design of the address field in a packet, this is NOT the same as the lengths of addresses. VLA choice makes this field variable and extensible to meet a variety of requirements. VLA still means you need some answer for what is the maximum length required to meet requirements. Gains due to more efficient coding? AS numbers do not need to be the same length as unicast addresses cluster adds << globally unique unicast Local use addresses can elide representing the outing structure in globally unique and routable unicast addresses (this is the common case for cable TV, parallel supercomputers, etc.) ======== One of the Following Assertions is True 16 bytes is enough forever enough until techno shock enough for 20 years NOT ENOUGH What if it isn't enough? Building in limits where they are not needed does not meet the need for being sure that it will work forever. Cost of using VL addresses is small, for each bit of coding you get a doubling of size. ======== Unfounded Claims variable length runs noticeably slower in routes - empirical evidence does not agree with this variable length addresses result in slow host implementations - need to effectively feed TCB lookup, can use hashing, binary tree search, etc. - structure of N+8 (locator + SYSID) where N = n * locator_extent_size (for n=0, 1, ...max) and locator_extent_size = 4 or 8 gives you nicely aligned addresses that are a "natural computer" length Variable length addresses are resource wasteful: Compared to what? 12 bytes of zero fill in an address? VLA is bandwidth and memory efficient both on the wire and in memory on routers and hosts. You code what you need to code. ======== Variable Length Encoding is Hard to Code Should we use fixed size packets Don't know how to extend addresses using VLA (the extend to the right issue) Let's say we use 8 and 16 byte addresses. First 4 bytes of both can be the same for the same provider (this is an administrative choice). ======== Summary VLA provides a flexible encoding scheme to meet the requirements and INSURES THAT WE WILL NOT RUN OUT Hard to imagine we are building old bugs into the new system. 16 byte fixed width choice is brittle and unnecessary. VLA can match requirements for encoding a variety of addresses in the packet field. VLA is efficient in matching these requirements in terms of bandwidth and memory use. ======== 2^128 IS NOT ENOUGH CUSTOMERS