Internet DRAFT - draft-anonymous-rtgwg-hlarp
draft-anonymous-rtgwg-hlarp
Network Working Group
Internet-Draft Independant
Expires: July 5, 2020 January 2, 2020
Hierarchically Located Addressing and Routing Protocol
draft-anonymous-rtgwg-hlarp-00
Abstract
This internet-draft describes a protocol with an addressing scheme
where members of the internet are addressed by their physical
addresses and by an implementing internet router that can contact
them. The packets sent by the protocol include handshake messages,
client data, and the status of the data being sent. A routing
procedure is suggested according to special addresses that carry
information about the region of a router.
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 https://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 July 5, 2020.
Copyright Notice
Copyright (c) 2020 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
(https://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
Expires July 5, 2020 [Page 1]
Internet-Draft HLARP January 2020
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
1. Introduction
1.1. Motivation
Allocated IP addresses require a fee, are only temporary, and require
an organization. An ISP can offer these services at a much greater
fee. This internet-draft attempts to provide the permanence of MAC
addresses and other types of physical addresses for the use of the
internet. The infrastructure for physical addressing is already in
place and already identifies a single transmitting machine. With IP,
transmitting machines are identified once more. The IP addresses are
distributed for routing purposes and for identification purposes,
although addressing for routing can be set up without identification.
1.2. Terminology
Rank - length of one coordinate
Root - no coordinates
Member - user of the HLARP network
Network Member - member that directly contacts a relay and
contacts at least one host member
Host Member - member that represents the user
Relay - router capable of transferring data between regions that
implements the described protocol
1.3. Scope
This draft focuses on routing and addressing. The described protocol
is to be operated between the physical and internet layers. The
draft provides a replacement for routing and addressing for IP but
for no other IP functionality. Other functionality is provided by
the internet header within a data packet. The described protocol
utilizes addressing features of the physical layer.
2. Draft Notes
This notice has been preserved because this is still a draft, and
this protocol is NOT standardized. The IETF does NOT permit
implementors that advertise conformance and/or implementation with
the described protocol. This does NOT specify a protocol, but
Expires July 5, 2020 [Page 2]
Internet-Draft HLARP January 2020
describe a proposed protocol to the readers. A mention of
specification of the discribed protocol has been accidentally
included and should be changed and interpreted as this is a
description. Any IANA registration requested has NOT been made. The
draft has been submitted using a Tor exit node and the owner of the
displayed IP address is NOT responsible for the content of this
document. The rules governing the IETF do NOT permit independant
publication due to the significant IANA registration of IPv14
(Section 6).
3. Addressing
In HLARP, two types of addresses are used. A member address is used
to identify a member of the network. Internet routers that wish to
abide by the protocol have no need to use a member address and need a
different address to route HLARP packets. A relay address is used to
identify an implementing relay in routing.
3.1. Relay Addressing
A relay address is comprised of two flags, a rank in the areal
hierarchy, an octet to specify the coordinate system, and two
coordinates. Relay addresses are used to locate the relay, and they
cover an area. Relays need no identification in their relay address
because the physical layer already identifies the relay. This area's
size is determined by both the mappings from physical locations to
coordinates, and the length of each coordinate.
This is the overview of an HLARP relay address.
+----------+--------------------------------------------------------+
| Size | Description |
+----------+--------------------------------------------------------+
| 1 bit | specifies if the location is the root rank |
| | |
| 3 bits | are reserved for future use (set to zero until |
| | further notice) |
| | |
| 4 bits | specify the length of each coordinate, minus one |
| | (pow(2,4) = 16 so 4 bits are used) |
| | |
| 8 bits | specify the coordinate system |
| | |
| 16 bits | specify the x coordinate |
| | |
| 16 bits | specify the y coordinate |
+----------+--------------------------------------------------------+
Expires July 5, 2020 [Page 3]
Internet-Draft HLARP January 2020
A rank of 0 is the root rank and the length of each coordinate will
not be used, and can be set to 0. While using any other rank, the
constant number 1 is to be subtracted from the rank for storage. The
maximum 4-bit number is 15, and this rule is made to fit rank 16 into
the length field.
3.2. Member Addressing
Member addresses are used to identify the members of this network of
networks. These addresses are relay addresses and the physical
addresses used for communication in the physical layer. The relay
address is the address of a relay that can contact the member. The
member address is the address of one end of a route. This protocol
makes a temporary fix for network members that are unable to keep
track of the physical addresses of the host members. Future versions
should obselete this functionality. The member network that is able
to recieve messages from the closest relay is responsible for
allocation of 16-bit numbers to physical addresses using the network.
If the member network has functionality to keep track of connected
physical addresses, then the network should always give 0 in addition
to the member's physical address. The only reason for this is to
save transmittor power.
This table shows the layout of a member address.
+-----------+-------------------------------------------------------+
| Size | Description |
+-----------+-------------------------------------------------------+
| 48 bits | store a relay address that can contact the member |
| | |
| 16 bits | store the number of the host member as assigned by a |
| | network member |
| | |
| variable | stores the physical address (length of the address |
| | of the physical layer) |
+-----------+-------------------------------------------------------+
4. Packets
An HLARP packet header consists of an special IP version specifier
(to prevent IP implementers from thinking that it's an IP packet), a
protocol number, a version number, some flags, a source, and
destination. The data will be assumed to be an IP packet with the
header, to use functionality from the Internet Protocol that this
protocol doesn't provide.
Expires July 5, 2020 [Page 4]
Internet-Draft HLARP January 2020
+-----------+-------------------------------------------------------+
| Size | Description |
+-----------+-------------------------------------------------------+
| 4 bits | always equal to 14 |
| | |
| 8 bits | determine the experimental/other protocol (1 in |
| | HLARP) |
| | |
| 4 bits | determine the HLARP version (this defines version 0) |
| | |
| 1 bit | determines the type of source address (0 for member, |
| | 1 for relay) |
| | |
| 1 bit | determines the type of destination address (0 for |
| | member, 1 for relay) |
| | |
| 1 bit | determines if there is a next relay address (0 for |
| | none, 1 for relay) |
| | |
| 2 bits | are reserved for future use (any value) |
| | |
| 3 bits | determine the operation ID |
| | |
| 6 bits | are also reserved for future use (any value) |
| | |
| 10 bits | form the addition of the 3 preceeding octets |
| | |
| 32 bits | form the CRC-32 of all remaining octets |
| | |
| variable | source address (member address or relay address) |
| | |
| 48 bits | next relay address (not always allocated in the |
| | packet) |
| | |
| variable | destination address (member address or relay |
| | address) |
+-----------+-------------------------------------------------------+
The first two octets specify that the header is for HLARP version 0.
There is an allowance for other protocols and for updates to this
protocol. The protocol number is to allow other protocols to
differentiate themselves and another number may be allocated for use
in any context.
The next 6 bytes give error checking capability and ensure data
integrity. The first number is calculated by adding each preceeding
octet into a 10-bit number. The remaining 4 bytes give the result of
Expires July 5, 2020 [Page 5]
Internet-Draft HLARP January 2020
a CRC-32 computation of the contents of all of the next octet. This
gives partial error checking capability on the addresses and data.
The next octets determine the type of source address, destination
address, and if the packet is currently being routed through a relay.
The source and destination address may be a member or a relay, but a
next relay address has no format options and defaults to a relay
address.
The source and destination address are to be stored as stated in
section 3 (Section 3). The next relay address is described in
section 3.1 (Section 3.1), and can not be a member address. The
address after the source addresss will be guaranteed to be the
address that needs to process the packet.
There are different operations that can be performed, like data
transfer, status reporting, pinging, and searching for a relay. The
operations change how the information following the header is to be
interpreted.
4.1. Operation 0 - DATA
Operation 0 will be a very frequently used operation, hence the
number with no one bits. The body of a data packet would have the IP
header and body. The IP address fields would still allocated in the
packet to ease adjustments by implementors of this protocol that
already use IP. This is also to save transmittor power.
4.2. Operation 1 - STATUS
Operation 1 is a message sent to a member that notifies it of the
status of the operation 0 message that it sent. Implementing relays
do not need to be send the operation 1 message to members. A message
of operation 1 has a single octet for the body. The octet is a
number that is selected from the list at the section's bottom and may
be expanded in future versions. If status code 8, 9, or 10 is used,
then the relay will give a null-terminated string appended to its
8-bit length. A zero-length string would be permitted, in which case
a null character is appended instead of a string.
The provided status code could be important information for the user
regaining access. Even successful transmissions should be responded
to with a status code for debugging purposes and to discourage DoS
attacks.
Expires July 5, 2020 [Page 6]
Internet-Draft HLARP January 2020
This table shows the status codes that are to be in use.
+-----------------+--------------+----------------------------------+
| Name | Enumeration | Description |
+-----------------+--------------+----------------------------------+
| DELIVERED | 0 | The message was |
| | | delivered |
| | | |
| BLOCKED | 1 | The message was |
| | | forcibly blocked by the relay |
| | | operator |
| | | |
| UNSERVICED | 2 | The destination |
| | | relay can not be reached |
| | | |
| UNUSED_HOST_ID | 3 | The specified |
| | | host ID is unassigned by the |
| | | network |
| | | |
| NONMEMBER | 4 | The given address |
| | | is not a serviced member |
| | | |
| BANNED_UNPAID | 5 | The relay awaits |
| | | member's service payment |
| | | |
| BANNED_LEGAL | 6 | The relay operator |
| | | is avoiding a legal risk |
| | | |
| DELIVERED_OTHER | 7 | The message was |
| | | sent unusually |
| | | |
| UNABLE_OTHER | 8 | The message can not |
| | | be sent for another reason |
| | | |
| BANNED_OTHER | 9 | The member is |
| | | banned for another reason |
+-----------------+--------------+----------------------------------+
4.3. Operation 2 - RELAY_REQ
Operation 2 is a member's request for relay services. The
destination may be a relay or a member. This operation is for a
member that is trying to get direct relay service and multiple relays
on the medium. If the member is searching, then the physical layer
will broadcast the message with operation 2 and use a multicast
address for the physical recipient. If the member has selected a
relay offer to accept, then it wil send the message to the physical
Expires July 5, 2020 [Page 7]
Internet-Draft HLARP January 2020
address that sent it. In an operation 2 message, there is no body,
or the body is of length zero.
4.4. Operation 3 - RELAY_OFFER
Operation 3 notifies the member of an offer of service. Any
unrequested responses are to be treated as DoS attacks if repeated.
There is no body to a message with operation 3 and the length is
zero.
5. Routing
The routing process is short-sided and depends on each relay. The
sending member doesn't need to generate an entire route in order to
send the data to the next relay. This is a 4-step process that a
single implementing relay could use. This process is a suggestion
that was devised according to the addressing scheme. A relay can be
called out for not reaching certain destinations and recieve less-
than-desirable traffic.
Step 1:
When a relay recieves a packet and runs is willing and ready to serve
the client, then it will determine the next relay or destination. If
the coordinate system, x coordinate, and y coordinate of itself and
of the destination matches, and the length of itself is the same,
then the relay will relay the packet to the destination.
Step 2:
Otherwise, the relay must determine the next relay in the route. If
the coordinate system doesn't match, then the relay will target the
root relay (setting the root relay as the target relay).
Step 3:
If the coordinate system matches, then the relay will perform an XNOR
operation on the x coordinate of the current relay and the target
relay. The same XNOR operation will be performed on the y coordinate
of both relays. Both results will be combined with an AND operation,
resulting in a single descriptor of the length. The relay will count
the amount of consecutive one bits, and start from the left. The
amount of consecutive one bits is the length. The relay will still
need to subract 1 from the length for storage and transmission.
Step 4:
Expires July 5, 2020 [Page 8]
Internet-Draft HLARP January 2020
The lengths of the current and target relay should be tested if they
differ by a number that is greater than 4, so that the current relay
doesn't need to be very accurate. The lengths should differ by 4 if
the length difference is greater than 4. This step will not change
the evaluation of l1 > l2 where l1 is the length of the current relay
and l2 is the length of the target relay.
6. IANA Considerations
This section is NOT an active request, as this document is an
Internet-Draft. DO NOT update ANY registries according to this
section. This section is ONLY for people who wish to publish this as
an RFC so for their convenience in changing to RFCs.
This draft would request the assignment of IPv14 in the Version
Numbers [1], for the experimental and other protocols. An 8-bit list
is requested for the enumerated protocols themselves. This list is
the protocols list for any other protocols of this scope to use. A
4-bit list is also requested, independant of the other list, for the
HLARP version numbers.
IANA would be tasked with mapping the latitude-longtitude coordinate
system of Earth with a 2-dimensional 16-bit-per-dimension coordinate
system. The allocation of sub-area IDs has no dependance on IANA.
IANA is requested to plot the points and to plot powers of two and
their decrements to align with real-world borders and obstacles (for
example, x = 32767 and 32768 could align with the borders of Europe
and the Americas). For anti-tracking purposes, the location
information can not be more accurate than current IP address
trackers. This would make the assignments vary in length, and the
rest of the x and y field can be filled with zeros, regardless of
where the network member locates itself within the specified area.
7. Security Considerations
Within the scope of this draft are the security issues of
authentication and eavesdropping. Data integrity and undeniable
service are issues for all areas of the internet. This draft, while
not giving DoS protection, discourages people from launching these
attacks themselves. The status operation is a feature that would
flood an attacker's medium of transmission. The protocol gives weak
verification for the integrity of the data. The protocol gives no
protection from attackers that wish to read or alter the data. It is
expected that the transport layer will provide data security.
Expires July 5, 2020 [Page 9]
Internet-Draft HLARP January 2020
8. References
8.1. URIs
[1] https://www.iana.org/assignments/version-numbers/version-
numbers.xhtml
Author's Address
anonymous
Independant
Email: 5265644D61736F6E@gmail.com
Expires July 5, 2020 [Page 10]