Forums - Open Redstone Engineers
Networking in minecraft - Printable Version

+- Forums - Open Redstone Engineers (https://forum.openredstone.org)
+-- Forum: ORE General (https://forum.openredstone.org/forum-39.html)
+--- Forum: Build Discussion (https://forum.openredstone.org/forum-50.html)
+--- Thread: Networking in minecraft (/thread-691.html)



Networking in minecraft - EDevil - 08-03-2013

Hello everyone,

As of about 3 weeks ago, people were getting very excited to have some sort of network implementation on the server. If i remember correctly, Red & Grace were the first "team" to start their router, after that Snug started his own design as well. Yesterday i found out that Aero was doing some sort of networking as well. Although this is very exiting for me personally, im a Cicso network specialist (if you dont know Cisco == Linksys (Or just the manufacturer of worlds best network equipment in the world, their products are often used in datacenters etc.)), it seems that there is a lot of confusion. Not only by me, and other players, but also just by some of the router designers themselves. So i've got a couple of questions for you'all;
  • How will i imagine the IP adressing? Is this going to be static, or is there a dhcp server involved?
  • If everyone is just building random routers, this will mean that we will all have seperate networks, cause every port on a router is a network.
  • If the previous statement is true, that everyone has its own network, will there be any routing protocols involved? (Static routes, RIP, OSPF, EIGRP) <-- This MUST be used in a rl scenario is i want to send packages from my plot's computer, through my router, through my neighbor's router, to his computer / device. Note that the last 2 routing protocols are kinda hard to make in minecraft, but OSPF should be duable cause its based on the Dijkstra Algorythm.
  • How will be the IP address layout? Do i need to expect something like a ipv4 layout, or just a plain binary number?
Thanks for reading & i would love to see some answers! (Red Dodgy)


RE: Networking in minecraft - Thor23 - 08-03-2013

Although I do have plans to build a router, it'll have to wait (or rather, I'm putting it off) until I finish building my computer (a task that has already taken more than a year, and I'm hardly any closer to having it finished then when I started :/ ). That said, I have thought about how it would work plenty, so I suppose I could share how I plan to have it function.


IP addresses would be statically assigned, for both computers and routers alike. I may at some point implement some type of DHCP, but it would only be for hosts; the router would still be manually assigned.

It would use a cut down form of RIP, a router once activated would send its address out to connected routers, and then again from those routers. I only plan for a router to remember up to 4 networks that are out of any one port, and only 2 hops away max. If the network happens to be large enough that the desired network is more than 2 hops, then it'll broadcast to all connected routers in the hops that one of them have it. Though now that I think about it, I should have some sort of network query system for cases like that.

The IP addresses themselves are much like normal IP addresses, except that they're 9 bits, broken into 3 three bit sections. The last section identifies either network, host, or broadcast address, and the upper 2 sections just identify which network you're on.


RE: Networking in minecraft - Billman555555 - 08-04-2013

I started on a network system about a month ago but haven't put
It on the server yet.

It uses a 4 bit static IP address and a 2 bit control.
It then sends along 16 bits of data directly from a device/RAM.


RE: Networking in minecraft - CMOSprinkles - 08-07-2013

Hmm, would there have to be people in the world near the computer you are networking with to keep the chunks loaded? Lol.


RE: Networking in minecraft - redstonewarrior - 08-09-2013

(08-03-2013, 10:22 AM)EvilDevil59NL Wrote: Hello everyone,

As of about 3 weeks ago, people were getting very excited to have some sort of network implementation on the server. If i remember correctly, Red & Grace were the first "team" to start their router, after that Snug started his own design as well. Yesterday i found out that Aero was doing some sort of networking as well. Although this is very exiting for me personally, im a Cicso network specialist (if you dont know Cisco == Linksys (Or just the manufacturer of worlds best network equipment in the world, their products are often used in datacenters etc.)), it seems that there is a lot of confusion. Not only by me, and other players, but also just by some of the router designers themselves. So i've got a couple of questions for you'all;
  • How will i imagine the IP adressing? Is this going to be static, or is there a dhcp server involved?
  • If everyone is just building random routers, this will mean that we will all have seperate networks, cause every port on a router is a network.
  • If the previous statement is true, that everyone has its own network, will there be any routing protocols involved? (Static routes, RIP, OSPF, EIGRP) <-- This MUST be used in a rl scenario is i want to send packages from my plot's computer, through my router, through my neighbor's router, to his computer / device. Note that the last 2 routing protocols are kinda hard to make in minecraft, but OSPF should be duable cause its based on the Dijkstra Algorythm.
  • How will be the IP address layout? Do i need to expect something like a ipv4 layout, or just a plain binary number?
Thanks for reading & i would love to see some answers! (Red Dodgy)

Woo, five days have passed, my slavemasters are allowing me to reply! Big Grin
[Image: Coilfang_Slavemaster.jpg]
slavemaster.
As I'm terribly sleep deprived and dripping with horrifying alien blood, listanswermode!
  • In minecraft, pasting a router is a significant act of precision and work alone. There is no reason to have dynamic IPs, we should more focus on making the routing as efficient as possible.
  • Every port on a router is a network... Maybe? I don't think you can logically segment it that nicely. If you're talking about bridging all of these networks, that's what an internet is. It's an abstraction layer built upon computers that route data over multiple networks to the final destination (efficiently.) Ports are useful for a proper client-server model and private address spaces (NAPT.)
  • We're not doing an internet, the gods of efficiency will rain down water buckets and destroy your plot. Would be fun, however. Hmmm...
  • For efficient networking in minecraft, either expect per-request IP assignment or (for more robust networks) per-plot assignment.

I am fashionably late.


RE: Networking in minecraft - Jorge1o1 - 08-10-2013

As a CCENT, and a pretty young one too, this really excites me! I would assume that we can assign a designated IP to each plot. The only forseeable problem I see is that each plot would be its own IP, but who would be responsible for interconnecting the machines in each plot. That person would essentially require build permissions in each plot, giving them ungodly power!

Static Routes would be the easiest to use and apply, but a bit dry and boring, and it would really be more like telegram cables than an actual network ^^.

Ignoring everything said above, another possibility would be to create a sort of MASSIVE DHCP Server in the heart of the map, which would allocate an IP address to every machine connected to it, and therefore be able to route traffic around without a predefined route from A to B.

This would be a lot more helpful than creating a line from Alice to Bob, from Bob to Charlie, from Charlie to Alice. Especially once Dan wants to get involved.


RE: Networking in minecraft - seankingman - 08-10-2013

I've always been fascinated with networks in Minecraft. My original idea was a network adaptor-ish thing which would link up 2 or more computers in close contact. Say I wanted to send something to another computer, I would implement a "Send" button that when pressed, would send the data to a buffer-ish thing. When the right computer is found (the receiver (which the sender specifies)) via an IP-like code system, it would send the data out in serial (one character at a time).

I haven't got around to designing and implementing this in Minecraft so I have no idea if it works. Tongue


RE: Networking in minecraft - EDevil - 08-10-2013

Thanks for the reply's everyone! Srry for late responding @Red @Jorge & @Sean, was on vacation :O


RE: Networking in minecraft - redstonewarrior - 08-10-2013

I think you might have misunderstood, the approach doesn't involve hardcoding each connection. It's a tree-based routing scheme, with successively more robust routers moving towards the root. The root router would be massively parallel. It would service, say, 16 routers. The next layer would split the next two address bits and be, say, at the corner of four plots (to allow all four plots to have one IP (each), while having the router close enough to be loaded when in use.)
You could easily assign dynamic IPs, but the infrastructure remains the same (from an outside viewpoint), and there's little point (as introducing and removing routers from the network is a task in itself.) In other words, to add one person, you just need to give their local group a router, and connect it to the large one at spawn. Automatic IP assignment via I/O port indexing, and it logically follows the plotmap.


RE: Networking in minecraft - Jorge1o1 - 08-10-2013

(08-10-2013, 06:07 PM)redstonewarrior Wrote: I think you might have misunderstood, the approach doesn't involve hardcoding each connection. It's a tree-based routing scheme, with successively more robust routers moving towards the root. The root router would be massively parallel. It would service, say, 16 routers. The next layer would split the next two address bits and be, say, at the corner of four plots (to allow all four plots to have one IP (each), while having the router close enough to be loaded when in use.)
You could easily assign dynamic IPs, but the infrastructure remains the same (from an outside viewpoint), and there's little point (as introducing and removing routers from the network is a task in itself.) In other words, to add one person, you just need to give their local group a router, and connect it to the large one at spawn. Automatic IP assignment via I/O port indexing, and it logically follows the plotmap.

That would probably work, and although expansion would be difficult, there is room for it.