Realistic Network Modeling Using Minetest

Enable the creation and usage of realistic and accurate 3D models of modern computer networks for research and instruction.

=Problem Definition=

Background
Minetest is a free and open source 3D voxel game that enables the creation of complex virtual worlds. A voxel is simply a three-dimensional data point, similar to how a pixel represents a value on a 2D bitmap.

Modifications, (‘mods’), enable the user to customize and create their experiences within Minetest. There are hundreds of free mods, such as animals, armor, and mechanics, and even step-by-step open source tutorials on how users can create their own. Current modifications do not, however, model computer networks and their controls in a way that is realistic enough for quality research and education in TCP/IP-based networks and cybersecurity using 3D virtual worlds. The goal of our team’s project is to change this, enabling a user-friendly network model that meets the standards of Bloom’s Taxonomy, implementing intellectual growth through direct experience with a 3D network model.

Deliverables
Currently, there are no 3D models of modern computer networks for research and education. As educational methods progress further into immersive technological learning, it is crucial that hands-on technological options are made available at the same rate. Our solution to this problem will be user-friendly, allowing visual and hands-on learners to flourish in the academic subject of basic networking.

The higher learning process characterized in Bloom’s Taxonomy is to apply, analyze, evaluate, and create. Our goal is to create a realistic and accurate 3D model of modern computer networks for research and instruction that can be used as a basis for further development or instruction while also pushing students to apply their knowledge from a classroom setting and draw their own conclusions about networks, as well as to create their own scenarios which will be modeled accurately.

Each network interface controller has a unique Media Access Control (MAC) address. This is a unique identifier to a piece of hardware which is used as a network address, or ‘physical address’ when communicating in a network segment. As a team, we will recreate these networks by creating a deliverable in the form of an environment in Minetest. This environment will utilize pipe-like blocks that transmit messages from computer to computer through a network switch.

Specifications


The diagram pictured on the left is a recreation of the original specification diagram drawn by our client during our first meeting. The diagram depicts the overall thought process of the network we would implement in Minetest.



In theory, we will have three objects that will makeup our networks: computers, wires, and switches. The objects labeled D1 and D2 represent computer machines. The large rectangle object represents the switch block, and the lines overlaid with zig-zags represent the wires.

The network will work by utilizing custom functions, sending messages using electronic signals from each computer through the wires and receiving further instructions by ‘checking in’ at the neighboring blocks, exactly the way a standard network operates in real-life.

=Devices=

The Blocks
Computers are the cornerstone to any network. For this reason, Networkcraft has taken into consideration the vast amount of different approaches individuals have to access networks, and as a team we have incorporated two different types of computers into our project: the monitor and tower, and the laptop.



This is the monitor and tower version of our computer block. The functionality of the monitor and tower blocks is the same of any other computer block. The blocks are interacted with by placing the tower in a block adjacent to the monitor block and right-clicking on the monitor block.

The monitor and tower's well commented code can be found here.



This is the laptop version of our computer block. The functionality of the laptop block is the same of any other computer block. The laptop block is interacted with by right-clicking on it.

The laptop's well commented code can be found here.



When any computer block is right-clicked on with the mouse, a graphical user interface (GUI) appears. The GUI displays the following elements: 1. Device Name - Found in the top-left corner of the GUI, the device name is displayed. In the example, you can see this as "Computer 1". In the future, the user will be able to edit and change this if they desire. 2. Message Received - Found in the middle of the GUI, a message that has been received from another computer can be seen. In the example, this can be seen as "Hello World!" 3. Current Mac Address - Found slightly below the middle of the GUI, the current Mac address of the computer is listed. This can be changed through the Update Mac Address field (4) if desired. Each Mac address is unique, and will be how the computers communicate to one another. In the example, the current Mac address is "00:0a:95:68:11". 4. Update Mac Address - Seen in the lower half of the GUI, this field allows the user to type a new Mac address for the currently selected computer, if they choose to do so. 5. Update Button - Seen at the bottom of the GUI, the Set Mac button allows the user to update the computer's current Mac address with the one that is currently in the "Update Mac Address" (4) box. In the example, if the button were to be pushed in the current state, the Current Mac Address (3) field would now display "00:0a:95:68:10". The GUI will constantly be updated as new features are implemented.

The Block
A network switch, sometimes known as a switching hub, bridging hub, or a MAC bridge, is a piece of networking hardware that connects devices on a computer network by using packet switching. Packet switching is the baseblock of data communications, and it works by grouping information into a header and a payload, which the network switch receives and forwards to the destination device. The header tells the network switch where to send the data, and the payload is the supplementary information.

To understand the network switch and its primary operations, it’s important to first understand the OSI (Open Systems Interconnection) model. The OSI model standardizes and characterizes data transmission in seven levels. The first three levels are known as media levels, and are more raw data transmission, while the upper four levels are known as host layers. The host layers are more advanced data transmission, including managing communication sessions, encryption/decryption, and remote file access.

The network switch is a multi-port network bridge that uses the media access control (MAC) addresses to forward data at the data link layer (layer 2) of the OSI model. Some switches can also forward data at the network layer (layer 3) by additionally incorporating routing functionality. Such switches are commonly known as layer-3 switches, or multilayer switches.

In our game modification, the network switch will have six ports. one port for each direction: up, down, front, back, left, and right.



The GUI
The switch GUI features six port labels, each reflecting a port for every side of the block's face. Under each label, there is an "Origin MAC" and "Target MAC" sub-labels. The area to the right of the sub-labels are updated whenever a player right-clicks on the switch block. These sub-labels reflect the origin and target MAC address of every wire that is connected to the switch block. Sub-labels that are empty imply that no wire is connected to that port.

The switch's well commented code can be found here.

Mescons


Mesecon is a mod that adds a model of electrical signals, making automation possible. It will only note if the signal is present or absent, but it does not have any notion of power. Within Mescons, receptors are blocks that generate a signal on some event that performs some action. Effectors are blocks that receive the signal, then logic blocks process the signal, and conductors join them all together, creating operational circuits.

In our model, we will only focus on implementing wires. These wires will hold the messages while they are in transit throughout the network system.

=Project Learning=

=Final Design=

=Validation=

=Team Members=

=Additional Documentation= GitHub Repository

Project Schedule



Meeting Minutes

Presentations

Client Interview

Other