Abstract(Datagram)Network Layer
The foundation of the Green Meta network protocol is the Abstract (Datagram) Network Layer. It enables all nodes to assume certain "network identities" represented by 256-bit "abstract network addresses" and communicate using these 256-bit network addresses (by sending data packets as a first step) to identify the sender and receiver. There is no need to be concerned about IPv4 or IPv6 addresses, UDP port numbers, etc., as they are hidden by the abstract network layer.
1. Abstract Network Address
An abstract network address, or simply address, is a 256-bit integer that is essentially equivalent to a 256-bit ECC public key. This public key can be generated arbitrarily, creating as many different network identities as nodes prefer. However, the corresponding private key must be known to receive (and decrypt) messages intended for this address. In reality, the address itself is not the public key; instead, it is a 256-bit hash (Hash = sha256) of a serialized TL object, which can describe several types of public keys and addresses based on its constructor (first four bytes). In the simplest case, this serialized TL object contains only a 4-byte magic number and a 256-bit elliptic curve cryptography (ECC) public key, and in this case, the address will be the hash of this 36-byte structure. However, a 2048-bit RSA key or any other public key encryption scheme can be used. When a node knows the abstract address of another node, it also needs to receive its "preimage" (i.e., the serialized TL object whose hash equals the abstract address), otherwise, it will be unable to encrypt and send data packets to that address.
2. Underlying Network with UDP Implementation
From the perspective of almost all Green Meta networking components, the only existing network is one that can (unreliably) send data packets from one abstract address to another abstract address (the Abstract Datagram Networking Layer; ADNL). In principle, the abstract datagram networking layer (ADNL) can be implemented on different existing network technologies. However, we implement it over IPv4/IPv6 networks (such as the Internet or Intranet) using UDP, with optional TCP fallback if UDP is unavailable.
3. TCP-like Stream Protocol on ADNL
ADNL is an unreliable (small-sized) datagram protocol based on 256-bit abstract addresses and can serve as the foundation for more complex network protocols. For example, ADNL can be used as an abstract alternative to IP for building TCP-like stream protocols. However, most components of the Green Meta project do not require such stream protocols.
4. Reliable Large Datagram Protocol on RLDP or ADNL
Instead of TCP-like protocols, a reliable arbitrary-sized datagram protocol based on ADNL (referred to as RLDP) is used. For instance, this reliable datagram protocol can be used to send RPC queries to remote hosts and receive replies through them.
Last updated