Abstraction
At the very basis of the project we need to
Generate and send UDP packets
Capture a packet and read it from a node
Encrypt a packet's payload
System & Process Model:
Encapsulation is the process in which some extra information is added to the payload to add some features to it. In this case, in our prototype, we added two additional data points. One is the number of hops left the packet has until its destination, the other is a list of destinations left. These values are then read by each node in the system and used by the node to determine what to do next.
The packet will contain the extra data points in the packet payload such as the number of hops left and the next destination. These values are modified each time the packet hits a server. When the server gets the packet, it subtracts the hops left by one and removes a destination from the packet.
Anonymizing networks, such as Tor, provide a way to anonymize Internet communications, so as to make it hard to link communication parties (e.g., a user and the web server he/she is visiting). These anonymizing networks rely on a distributed overlay network and on onion routing to anonymize TCP-based applications like web browsing. In iRON we have an implementation of onion routing for UDP packets. This means the sender needs to contact all three nodes and encrypt at each layer of destinations. This means that each node, in order to find where the next destination is, the node must have the correct key to decrypt the packet and find out the next destination. This also means that the payload is encrypted all the way until the destination.
Traffic on the internet needs to make many hops within the public internet to get to its destination. At each of these hops, the packet can run into congestion, thus causing more latency. In iRON we will host our own nodes throughout the world which will help in the traversal of packets. These nodes should decrease the number of hops the packet needs to take in order to get to its destination. The benefit of our custom nodes is that AWS has a high-speed direct line connecting its server farms. This direct line will act like a highway for the packet as it travels through our nodes, then back onto the public internet for the remaining distance to the destination device.