Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- BTRNET
- The Built-To-Run Network
- BTRNET is an extensible, modern implementation of a simple network stack, specifically designed
- for situations where computational power is extremely limited, often being measured in Hz, rather
- than today's MHz and GHz. It aims to provide an interface for communication capable of supporting
- multiply different physical media across many different domains.
- BTRNET is defined in 2 layers, closely mapping to the 2 lowest layers of the OSI model.
- Layer 1, the Physical Layer, defines the physical communication protocol between NICs.
- Layer 2, the Data Link Layer, defines how connected nodes resolve addresses and send information
- to other nodes.
- The reference implementation of BTRNET is to be implemented in Minecraft, to allow communication
- between CPUs on the Open Redstone Engineers server.
- The specification for the Physical Layer is to be defined, and is intended to be different per
- implementation, to account for the specific characteristics of that environment.
- Following is a draft specification for the Data Link Layer:
- A frame is composed of 4 bytes, 1 byte address and 3 bytes of data
- The address byte is sent first on the PHY
- The interior layout of the data bytes is not defined.
- Addressing:
- BTRNET is a strictly hierarchical network. All nontrivial communication is accomplished by
- sending frames through a tree of switching nodes [the FABRIC]. Using the fabric, frame switching
- performance is improved by simplifying the switching nodes. In a typical Ethernet environment,
- each switch must maintain a table of MAC addresses associated with each of its ports. In contrast,
- BTRNET aims to operate in environments where this is difficult or impossible, therefore BTRNET
- devices' addresses are defined by their location in the fabric.
- Specifically, each switching node needs only two configuration parameters, its address, and its
- service prefix. A switching node, upon receiving a frame, will them compare the address of the
- incoming frame to its address. If the prefix of the incoming frame matches the prefix of the node,
- then the next bit determines which path will service that frame. A missed prefix indicates the node
- needs to send that frame upstream until a node is found that can service the request.
- In this way, up to 256 devices are supported on a BTRNET newtwork, with the complete network
- requiring 255 switching nodes. This is not a problem, because intended applications will not be
- able to service that much computation simultaneously, and the extra address space is mainly to
- allow expansion in any direction.
- Addressing example
- 'x' means any bit value - host 0000.xxxx services hosts 0000.0000 through 0000.1111
- root node xxxx.xxxx
- o
- / \
- node 1xxx.xxxx o o node 0xxx.xxxx
- / \ \
- node 11xx.xxxx o | H host 0000.0000
- | o node 10xx.xxxx
- |
- host 1100.0000 H
- For host 1100.0000 to send a frame to host 0000.0000, the following process would occur:
- 1. host 1100.0000 constructs a frame with destination address 0000.0000
- 2. frame arrives at node 11xx.xxxx
- 0000.0000 does not match the prefix 11xx.xxxx, frame is forwarded up to parent node
- 3. frame arrives at node 1xxx.xxxx
- 0000.0000 does not match the prefix 1xxx.xxxx, frame is forwarded up to parent node
- 4. frame arrives at root node xxxx.xxxx
- 0000.0000 does match prefix xxxx.xxxx, next bit is checked
- next bit is 0, frame is forwarded to the '0' downstream node
- 5. frame arrives at node 0xxx.xxxx
- 0000.0000 does match prefix 0xxx.xxxx, next bit is checked
- next bit is 0, frame is forwarded to the '0' downstream node
- 6. frame arrives at host 0000.0000
Add Comment
Please, Sign In to add comment