RFC 1365

An IP Address Extension Proposal

πŸ“… published September 1992, from ietf

RFC 1365: An IP Address Extension Proposal πŸ¦‹

Network Working Group Β· Request for Comments: 1365

  • Author: K. Siyan (Karanjit Siyan) of Siyan Consulting Services πŸ’…
  • Date: September 1992 🌸
  • Category: this one provides information for the Internet community and does not specify an Internet standard ✨
  • Obsoletes / Updates: the title block doesn't list anything it obsoletes or updates πŸŽ€

Status of This Memo πŸ“œ

okay so this memo is informational, not a standard. It's giving "here's an idea, tell us what you think" energy. Distribution is totally unlimited, so share it with everyone πŸ’–

Abstract πŸ”₯

this RFC suggests an extension to IP to fix the shortage of IP addresses problem 😭 and it's literally begging the community for discussion and suggestions for improvements 🫢

1. Introduction and Background ✨

the Internet community has a super well developed, mature set of protocols that have been seriously successful at giving networks and transport services to users πŸ‘‘ but because TCP/IP blew up so hard, and so many networks want to connect to the Internet, we're running low on network numbers that can be assigned πŸ’€

the current addressing scheme uses a 32-bit IP address that has a network part and a local address part 🧚 the split between those two parts is defined by 5 address classes: class A, B, C, D, and E. only A, B, and C are assigned to hosts. D is for multicasting and E is reserved 🌈

class A has the highest order bit set to 0, a 7 bit network number, and a 24 bit host address πŸ“

class B has the two higher order bits set to 10, a 14 bit network number, and a 16 bit host address πŸ¦‹

class C has the three higher order bits set to 110, a 21 bit network number, and an 8 bit host address 🌸

class D has the four higher order bits set to 1110 πŸŽ€

class E has four higher address bits set to 1111 🧚

making the IP address field bigger than 32 bits would fix everything, but it would mean a brand new IP header definition that doesn't work with the existing base of IP implementations 😭 OSI based solutions like CLNP have been proposed too, but they'd take a while to implement πŸ™ˆ

2. Proposal for IP extension πŸ’…

the IP header format should not be modified, so there are as few changes as possible for the address extensions proposed here. instead, an "escape" mechanism can be used to specify larger addresses πŸ”₯ the IP header length field is 4 bits, which allows a maximum of fifteen 32-bit words, where each word is 4 octets. the minimum size of an IP header without options is 5 words, which leaves 10 words for options πŸ“ we can reserve 6 words (24 octets) for the normal options and leave the remaining 4 words (16 octets) for a new option type that specifies an extended address ✨ the details of this mechanism are below πŸ‘‘

class E should be defined with its five high order bits set to 11110 🌈 its current definition is that four 1's in the most significant bits represent a class E address 🫢

a new class F is proposed with its six high order bits set to 111110 πŸ’– the new class F address would sit in the same spots that the source and destination IP addresses use in the IP header, but it would say that part of the addressing info lives in the options part of the IP header πŸ¦‹ here's how it looks:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver.  | IHL   |   TOS         |   Total Length                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Identification            |Flags|   Fragment Offset       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|1|1|1|1|0| Offset| Reserved  | Source IP address part 1      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|1|1|1|1|0| Offset| Reserved  | Destination IP address part 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
:                            Options                            :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: SADDR Code    |Len adr. part 2| Source IP address part 2      :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: DADDR Code    |Len adr. part 2| Destination IP address part 2 :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
:                            Data                               :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

so the "Offset" field gives the offset in words, counted from the start of the IP header, where the second part of the IP address lives 🧚 its whole purpose is to avoid searching the options part for addressing info πŸ™ˆ the address in the options part is in Type-Length-Value form, matching the other IP options in that part ✨ the "Len adr. part" field tells you the length of the second IP address part in octets πŸ“ the lengths should be defined so the second part of the IP address ends on a word boundary, so the possible values are 4 or 8 octets πŸ’– it's proposed that new IP option codes be used for the SADDR and DADDR codes, respectively 🫢

the IP address is the 2 bytes in the fixed IP header part plus the address field defined in the options part πŸ¦‹

if "Len adr. part" is 4, the new class is called F-4 (class F with an IP address length of 4 octets) 🌸

if "Len adr. part" is 8, the new class is called F-8 (class F with an IP address length of 8 octets) 🌈

each of F-4 and F-8 can be further split into a network number and a host number field, kind of like the current IP addressing scheme πŸ‘‘

here are the sub-class definitions for F-4. the 4 octets are drawn together, but the first 2 octets and the last 2 octets are not contiguous in the IP header πŸ™ˆ

class F-4A has the highest order bit set to 0, a 7 bit network number, and a 24 bit host address πŸ“

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| net number  |  local part                                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class F-4B has the two higher order bits set to 10, a 14 bit network number, and a 16 bit host address πŸ¦‹

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|      net number           |   local part                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class F-4C has the three higher order bit set to 110, a 21 bit network number, and an 8 bit host address 🌸

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |1|1|0|      net number                         | local part    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class F-4D has the four higher order bits set to 1110, and it's reserved for multicasting πŸŽ€

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|1|1|0|       |       multicast                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

now the F-8 sub-classes. the 8 octets are drawn together, but the first 2 octets and the last 6 octets are not contiguous in the IP header 🧚

class F-8A has the highest order bit set to 0, a 7 bit network number, and a 56 bit host address πŸ“

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| net number  |          local part                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          local part                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class F-8B has the two higher order bits set to 10, a 14 bit network number, and a 48 bit host address πŸ¦‹

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|      net number           |   local part                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          local part                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class F-8C has the three higher order bit set to 110, a 21 bit network number, and a 40 bit host address 🌈

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|1|0|      net number                         | local part    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          local part                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class F-8D has the four higher order bits set to 1110, a 28 bit network number, and a 32 bit host address πŸ’œ

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|1|1|0|                  net number                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          local part                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class F-8E has the five higher order bits set to 11110, a 35 bit network number, and a 24 bit host address ⭐

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|1|1|1|0|                net number                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   net number  |          local part                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class F-8F has the six higher order bits set to 111110, a 44 bit network number, and a 16 bit host address πŸ”₯

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|1|1|1|1|0|              net number                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          net number           |        local part             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class F-8G has the seven higher order bits set to 1111110, a 49 bit network number, and an 8 bit host address πŸ‘‘

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|1|1|1|1|0|              net number                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 net number                    |  local part   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

3. Interoperability Issues 🫢

if a host that doesn't support the new class F address sees one, the IP datagram gets ignored 😭 so communication with existing hosts won't be possible, but the changes needed for existing hosts are way smaller than building a whole new IP header structure or a different protocol πŸ’…

the receiving host has to be modified to include the code sketched below πŸŽ€

     if (Destination_IP_address & 0xFC000000 == 0xF8000000)
     {

          /* New extended class F address */
          Class_F_Processing(Destination_IP_address);

      }

the Class_F_Processing() procedure can live in its own separate module 🧚 there will be other changes needed to pass the results of processing the class F address over to the main IP processing module, but they shouldn't be too extensive 🌈

Security Considerations πŸ™ˆ

okay this is the dramatic part 😭 security issues are not discussed in this memo. that's all it says, so take that however you want πŸ’€

Author's Address πŸ’Œ

   Karanjit Siyan
   Siyan Consulting Services
   49 Taurus Road, Box 960
   North Glastonbury
   Emigrant, Montana 59027

   Phone:  406-333-4491

   EMail:  72550.1634@compuserve.com

that's the whole RFC, bestie πŸŒˆπŸ’–βœ¨

πŸ“¦ where this page comes from