Magicnet, a small network - Printable Version +- Forums - Open Redstone Engineers (https://forum.openredstone.org) +-- Forum: ORE General (https://forum.openredstone.org/forum-39.html) +--- Forum: Projects & Inventions (https://forum.openredstone.org/forum-19.html) +---- Forum: Completed Projects (https://forum.openredstone.org/forum-21.html) +---- Thread: Magicnet, a small network (/thread-8285.html) |
Magicnet, a small network - Magic :^) - 11-08-2015 So, I'm getting close to the completion of my main router/node thing, so i'll go ahead and describe how it works. First of all, there's a 6 bit IP address and 2-bit port number in a header byte in the form of aa.bb.cc:dd 11 isn't used. I'm keeping things in groups of 3 for easier routing. Maybe i'll use 11 to broadcast to multiple locations, but for now it's undefined. so, in a maxed out network, there would be 3*3*3 (27) unique addresses, with 3 ports for a client to use at each address. The intention is that a plot can have a unique IP address (or share it with a neighbouring one) with 3 device ports to share. The nodes are going to be hardcoded with their location information, which is about 8 or so torches/repeaters placed on a decoder. Fairly straightforward to configure. This location information allows the nodes to pass data along the shortest path possible. Since data will always take the same path from A to B, you also don't have to worry about receiving packets out of order. Each node has an internal buffer which holds a packet as it waits for the next node to be free, if it is busy. This is done by a simple handshake protocol, where the node send a REQ pulse to the destination, and will only start sending the data after it receives an ACK signal in return. Since each node is buffered, an example 16 node network at max congestion would be able to handle 16 packets simultaneously. The data is routed by the nodes by looking at direct neighbours (mini decoder rom sorts that out): If the data is already at the right node, it gets passed down a child node. If the data is in the same group of 3 nodes, but not this one, the data is passed left or right to the correct one. If the data needs to go somewhere outside this nodes scope, it promotes up to a parent node. A packet can be variable length, anywhere between 2 and 10 bytes in multiples of 2. Metadata about the packet length is not required, as the node can tell when transmission is finished once the periodic 8 tick initiate line stops. (this is a line which is already required for 8 tick/byte serial transmission) The transfer cable (1 way) consists of 2 serial transmission lines, 1 initiate line, 1 REQ line and 1 ACK line. Packet layout: Code: Each [] is 8 bits A maximum sized 10 Byte packet would take 40 ticks to serialize in this system. RE: Magicnet, a small network - Tommyand - 11-11-2015 (11-08-2015, 07:45 AM)MagicalGentleman Wrote: for aa to cc, 00 isn't used. I'm keeping things in groups of 3 for easier routing. Maybe i'll use 00 to broadcast to multiple locations, but for now it's undefined. WHYYYyyyyyy... would you make 0 undefined? Unless... you have addresses with zero be special loop-back addresses? Why have 27 when you could have... uh... more! (64?) RE: Magicnet, a small network - Magic :^) - 11-11-2015 It's for routing convenience more than anything else. grouping together 3 nodes is MUCH simpler than grouping together 4. groups of 3 are also more efficient for finding the shortest paths through the network. also i changed the unused bit pair to be 11 instead of 00. For now, a packet with a 11 in any of the address fields will just be ignored. The first router that the packet hits will just send a ping back as if it was handled correctly, but nothing will have been sent further than that router. RE: Magicnet, a small network - Magic :^) - 11-14-2015 Bumping for update: changed the protocol up, i'll probably make a new thread about it. I'm able to send small packets on a local network now :O RE: Magicnet, a small network - Magic :^) - 01-07-2016 I was asked to explain the system to someone wanting to use it, and my explanation went quite in detail so I'll post it here too: MagicalGentleman Wrote:the network hardware is pretty much finished yeah, but due to the issue of redstone in unloaded chunks, a large scale network isn't feasible at the moment. RE: Magicnet, a small network - jxu - 01-11-2016 I will be very surprised if someone actually sets up a functioning network on this server It's been tried like a dozen times RE: Magicnet, a small network - Magic :^) - 01-12-2016 functioning network inter-plot won't work until chunk loading stuff is solved. I have no interest in researching that myself. A local network within your plot however? perfectly possible. RE: Magicnet, a small network - §§§§ - 01-12-2016 Yeah. I may try a simple two plot network with my neighbor. RE: Magicnet, a small network - LordDecapo - 01-12-2016 (01-11-2016, 06:10 AM)͝ ͟ ͜ Wrote: I will be very surprised if someone actually sets up a functioning network on this server This iis one.. well u just need to connect some nodes to it and such. But it's mostly done already RE: Magicnet, a small network - Magic :^) - 01-12-2016 If i get around to making a V2 of this router, I'll define the [optional byte] to be the sender's IP. With this information, It would be reasonable to make a more robust router design, one with a timeout xD if the router waits too long to send a packet, I could then have it timeout and return a 'could not send' packet back to the original sender. The router would generate its own 'return' IP which would have a 11 pair that corresponds to the tree level where the timeout happened. This also means that error reports won't bounce back and forth between non-clients as two successive timeouts would result in sending to a 11 address which will be deleted :O Armed with the debug info, one could more easily find broken routers and fix large networks with not much hassle! If i made this, the protocol would be backwards compatible with the current design too which is nice. EDIT: Oh you could also opt out of error reports by setting your return IP to include a 11 pair. That might be handy for some people. RE: Magicnet, a small network - ddthj - 01-13-2016 (01-12-2016, 12:50 AM)MagicalGentleman Wrote: functioning network inter-plot won't work until chunk loading stuff is solved. I have no interest in researching that myself. Lol been there, done that RE: Magicnet, a small network - PI-Pyru-Pyru - 03-21-2016 (11-08-2015, 07:45 AM)MagicalGentleman Wrote: So, I'm getting close to the completion of my main router/node thing, so i'll go ahead and describe how it works. This is exactly the kind of knowledge I'm looking for! MagicalGentleman, you are the best! I'm going to visit your plot quit often! ;D RE: Magicnet, a small network - Chibill - 03-22-2016 Please don't bump 2 month old threads when you are not saying something productive. RE: Magicnet, a small network - Reewass_Squared - 08-03-2016 Where do I sign up? This looks somewhat promising. RE: Magicnet, a small network - josh03222 - 08-03-2016 (03-22-2016, 03:13 AM)Chibill Wrote: Please don't bump 2 month old threads when you are not saying something productive. (08-03-2016, 03:36 PM)Reewass_Squared Wrote: Where do I sign up? This looks somewhat promising. RE: Magicnet, a small network - MW3_587786 - 08-07-2016 (03-22-2016, 03:13 AM)Chibill Wrote: Please don't bump 2 month old threads when you are not saying something productive. Whelp now it's a recent thread. I'll ask again, where do I sign up? RE: Magicnet, a small network - LordDecapo - 08-07-2016 U dont. This isn't being set up server wide. Magic, others and I see that it's clearly pointless to do such a thing. It only adds lag and unneeded latency. If you want to use maginet, take the parts, assemble one on your plot and connect some stuff to it. Or ask magic if he will put something u make on his little test network. RE: Magicnet, a small network - josh03222 - 08-07-2016 I thot threads get locked if they git bumped... |