This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
lifewcody's profile picture

IPv2 | InZernet Protocol Version 2 BETA | RFC

Started by lifewcody, 29 July 2016 - 04:42 AM
lifewcody #1
Posted 29 July 2016 - 06:42 AM
Hello everyone.
I developed IPv1 and it worked quite well and could give someone a basic understanding of how the internet worked – keyword: basic
I have begun work on IPv2 to allow a system where you would have Wi-Fi, modems, GPS, etc. This version would have published protocols and standards. This post is mean to be a Request For Comments (RFC) on the current standards I have in place for IPv2.
Feel free to add in your own RFC for say, a mail system, security door system, etc.


GitHub: https://github.com/InZernetTechnologies/IPv2
IP Scheme
SpoilerIP's are 2 octets X.X
These are scalable and theoretically have no limit.
They are composed of ROUTER.CLIENT.
Each client should have a router to redirect packets and such. The router's ID is the first octet. The second octet is the client/server ID.
Example: Router ID is 2, Client ID is 1. IP is 2.1
This allows for IP's to never collide and simplicity on the network
Packets
Spoiler
534.1 {Definitions}
IP = InZernet Protocol
534.2 {Packet Setup}
[Version]
[Protocol]
[TTL]
[Source Address]
[Destination Address]
[DATA]
534.3 {Acceptable Parameters}
534.3.1 {Version}
[1] = IPv1
[2] = IPv2
534.3.2 {Protocol}
[1] = ICMP
[6] = TCP
[17] = UDP
534.3.3 {TTL}
This value is decremented by one at each intermediate node visited by the packet. When the counter reaches 0 the packet is discarded.
534.3.4 {Source Address}
The address of the sending node.
534.3.5 {Destination Address}
The address of the destination node.
534.3.6 {DATA}
Not essential to the packet itself, but should be used so empty packets are not sent.
534.4 {Packet Order}
The table that is sent as the packet is place sensitive as the table does not use strings for keys.
VLAN
SpoilerBy default everything is on VLAN 1. Using a switch or router you can change the VLAN. VLAN numbers range from 1-128. For each VLAN the device listens to, it will open a modem on the channel (VLAN) to receive that information. This allows for less broadcasting on specific devices, etc.
Wireless
SpoilerWhen a router detects a modem, it will generate a random SSID along with a random password and display it on startup. The router will scan the wireless channels (150-175) and pick the lowest one that is not being used. The reason for using 25 channels is that each SSID can run on it without overlapping another channel and packet collision, etc.
SECURITY
As of now, wireless is so insecure because there is literally no encryption. I don't know of any sort but hopefully someone can help out somehow?
EDIT: http://www.computercraft.info/forums2/index.php?/topic/8836-rc4-encryption-api/
Core Routers & ISP's
SpoilerTo create your own 'ISP' is pretty easy. All you need to do is setup a network and BAM! It just works! What if your friend has his own ISP and you want his clients to access your servers and vise-versa? That's where a core router comes into play. These handle the requests coming from each ISP as well as stopping attacks. Each ISP plugs into a side of the router and then the router negotiates with each side if the packet will be allowed (firewall). You can also set throttling, etc in the core router. Also used for huge corporate networks, put a core router between the actual internet and the corporate network and setup a firewall rule to setup DMZ, etc.
PROBLEMS
If ISP A and ISP B both have separate DNS servers, there is no way to communicate with them – yet. Thinking of 'forwarders'
SETUP
Each ISP would need: DNS Server, DHCP Server, Auth Server [Optional].
DHCP
SpoilerDHCP stands for Dynamic Host Configuration Protocol (which is a standard in the actual internet). What happens is the client broadcasts a packet with the source address as ID.ID (ID=computer ID) and the destination address as 0.0. The first router the packet hits, takes the packet and gets the ID and then gets the router ID and returns it with the correct source address and destination address. More info soon
DNS
SpoilerDomain Name System [or Server] resolves domains to IP addresses.
In the comments you can add more details, reply to details, request to change, etc.
Edited on 01 August 2016 - 02:59 PM
PossieTV #2
Posted 29 July 2016 - 07:05 AM
I like this idea alot (networking is my favorite part of cc) although this post should go in general no? Or at least until you have some code to share
lifewcody #3
Posted 29 July 2016 - 07:14 AM
I like this idea alot (networking is my favorite part of cc) although this post should go in general no? Or at least until you have some code to share

Yea I realized that after I posted :P/> Already requested for it to be moved to general. Do you have any other ideas / suggestions for it? Always looking for help too
Lyqyd #4
Posted 29 July 2016 - 05:34 PM
Moved to General.
PossieTV #5
Posted 30 July 2016 - 01:32 AM
I don't really have any ideas right now, although I'm sure I will once the first version is released and I've played around with it a little while, I'm excited to see what you come up with though
lifewcody #6
Posted 30 July 2016 - 01:56 PM
I don't really have any ideas right now, although I'm sure I will once the first version is released and I've played around with it a little while, I'm excited to see what you come up with though

http://www.computercraft.info/forums2/index.php?/topic/23772-ipv1-inzernet-protocol-version-1-in-game-internet/page__fromsearch__1

This one is already finished, IPv2 is the second revision.
lifewcody #7
Posted 01 August 2016 - 04:59 PM
Added GitHub: https://github.com/InZernetTechnologies/IPv2