Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
AtomicScience

OpenComputers Network Stack - TCP/IP-like network stack

Recommended Posts

Posted (edited)

Hello everyone! In this topic, I present you my own development - set of network protocols called OpenComputers Network Stack.
This version - OCNSv1 is still considered Alpha, so don't pay attention to details.

Brief:
OpenComputers Network Stack (OCNS in a short way) is the TCP/IP-like network protocols stack aimed to standardize network interconnections between OpenComputers machines. The first version of the stack, to which this note is attached, is Alpha-version - there are plenty of imperfections, some protocols are not what they are intended to be, however, I've decided to share this stack with community, and I hope you will help me in any way - feel free to suggest anything or criticize my decisions
Features:
OCNS architecture was developed to support these characteristics:

  • Modularity
    To provide easy extensibility and complementarity, a protocol should support defining its components as separate elements.
    Every protocol in the stack is represented as a single file, following defined for its layer protocols API.
  • Abstraction
    Users of higher-layer protocols should not care about routing, channelling, packets forming and other low-layer stuff, and clear separation of protocols over OSI model helps users to only pay attention to higher layers and programmers to develop their own protocols with only taking care of lower one
  • Efficiency
    Instead of imitating of real-life protocols, OCNS create its own, OpenComputers-oriented system and have the author, that write features of his stack out of his own head

Protocols:
OCNS have got protocols, distributed over OSI models like shown below:
image.png.ade2c376010d9e2cbedde5cdbe8d3b0e.png
Let's analyze all the points from down to up:

  • Interfaces
    OpenComputers provides plenty of different medias - tunnel cards, wire modems, wireless ones and so on. To unificate their interfaces, we should develop single API and implement medias' interfaces over it. This approach lets us to make crazy things - transmitting network packages over redstone, floppies carried by drones and just anything you can imagine - and any of these will be easily controlled via few methods
    However, now all the protocols depend on a primary modem in OS, so this is the planned feature
  • mIP
    Routing protocol. Uses cool 3-octet address
    In version 1 only supports routing in one Ethernet
  • mARP
    Protocol intended to seek not cool physical addresses by cool mIP ones
    Works nominal in version 1 and not planned to be changed
  • mUDP
    Allows to use mUDP sockets
    Is planned to obtain extended API in version 2
  • pingStub
    Old debug protocol, marked for deletion
  • mNSP
    The protocol that encapsulates a mUDP sockets in very convenient streams
    There is an example program echo in the archive that demonstrates the power of the protocol
    Is going to be reworked in version 2

Installation:

1) Download - **Removed by staff** (was too lazy to make it over Pastebin or Git)

2) Extract all the folders (except 'echo') to the root of your OpenOS drive
3) Reboot
4) Assign an unique mIP address to the computer by typing 'change_mIP x.x.x'
5) Repeat these steps at another PC connected with the first one and test connection between them using ping
6) Done! Every API method is documented, so it will be easy for you to learn the code Готово! Каждый метод API задокументирован в коде, так что разобраться в нем не должно составить труда
Don't forget about the echo test program

 

Edited by Lizzian
Removed link to url, site is an unknown and pastebin/github would be better

Share this post


Link to post
Share on other sites

just requiring your library throws errors.

Another thing what is strange is that when you download the zip folder, its already inflated, thats not some kind of hacking assault?

Share this post


Link to post
Share on other sites

I can only recommend to put it onto github, its the same afford to put it there then to put into a zip folder and upload it to a file sharer.

Also anybody can be sure that downloading your piece of software is not containing any malware which gets executed on download.

In addition, i could be able to report the first bug in your issue tracker and you can keep track of it.

 

Share this post


Link to post
Share on other sites

I've removed the link in the OP as it directs to a generally non-standard site.

 

@AtomicScience please use Paste/Hastebin or GitHub for sharing code as they are easier to see the code and no possibility of a virus or something being included

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.