Giter Club home page Giter Club logo

escnet-protocol's Introduction

ESCnet Protocol

Description of the ESCnet protocol.

Warning - this is work-in-progress and is / will be changed frequently until stable version is released.

Basics

Structure of ESCnet assumes that the network is divided like a tree into 3 (4) components:

  • Zone, global region (continents)
  • Net, local region (city, state)
  • Node, a server
  • Point, a user on a node (not a member of ESCnet)

All of those are represented with a number and stored in this format:

zone:net/node(.point) If point is not specified, it is assumed to be 0 (node's system operator - sysop).

Each zone and net has their "zero" server that is used as a gate between zones, nets and nodes.

Netmail and echoconferences

ESCnet is made to serve metmail (direct messages) between users and allow them to participate in echoconferences (echoes), which are similar to netmail, but everyone can see messages in it. Echoes can be public or local - available only to some nodes / nets / zones.

Any user (point) can write a message to an echo, and it should be immediately available to other points on the same node.

Other points on other nodes cannot yet see the message, because it wasn't yet synced to their node. For this to happen, the synchronisation between nodes needs to occur.

Synchronization

Nodes can be linked together manually by their sysops, and they will be synchronized automatically really quick (every 7 minutes if new netmail / echo messages are available).

Otherwise, nodes will sync with their net once each 15 minutes. Nets will sync with other nets every 20 minutes, and will sync with zones every 20 minutes. Zones will sync with other zones each 20 minutes.

But, as you may have noticed, this configuration only works in one-way - from the bottom nodes of the ESCnet to the top nodes (uplinks of the bottom nodes).

This won't allow for messages to actually get to their destinations, so there is also a downlink synchronisation in place:

  • Zones will sync with nets every 20 minutes;
  • Nets will sync with nodes every 15 minutes.

All these "every N minutes" aren't aligned to some global time to prevent all members of ESCnet from trying to synchronize at the same time and effectively DDoSing the whole infrastructure.

Uplinks and downlinks

Uplinks of a node are nets. Optionally, nodes may serve as up/down-links to each other.

Uplinks of a net are zones and other nets. Downlinks are nodes and other nets.

Uplinks of a zone are other zones. Downlinks are nets and other zones.

Discovery

Nodes, nets and zones will discover each other from a global nodelist:

WIP

escnet-protocol's People

Contributors

geckwwo avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.