routing-sims | Misc scripts to simulate different routing schemes

 by   Arceliar Python Version: Current License: GPL-2.0

kandi X-RAY | routing-sims Summary

kandi X-RAY | routing-sims Summary

routing-sims is a Python library. routing-sims has no bugs, it has no vulnerabilities, it has a Strong Copyleft License and it has low support. However routing-sims build file is not available. You can download it from GitHub.

The packet forwarding procedure is slightly modified from the TZ scheme, to reduce stretch a little further. A separate hashtable lookup is used to check if destinations are a peer ("neighbor" in the usual terminology from graph theory), in the local cluster, or a landmark. Forwarding uses the following priorities:. Checking peers is a deviation from the usual TZ forwarding procedure. My rationale is that each node needs to store some state per peer anyway (for the distance-vector routing portion of the scheme). This is just exploiting extra information that is present at each node, but not actually in the routing table, to slightly improve routing performance. In particular, you presumably need to store at least a port number per peer, and a hashtable is a natural structure to use for those lookups anyway. Landmark selection is significantly different, to remove the full view requirement. An iterative scheme is used to calculate an approximation of each node's coreness. Each node is assigned a weight, equal to degree minus coreness ("dmc" in the scheme's name). A target weight W is selected, equal to the maximum weight for which at least W nodes have weight >= W. The nodes with weight >= W are kept as landmarks. This landmark selection process is done independently at each node, using only information in the local routing table. Nodes propagate information about the selected landmarks to their peers, and the network converges on one set of landmarks to use. It is possible to extend the scheme for name-independent routing, but this has not been implemented in the simulation. It is assumed that the network would include some mechanism to allow header lookups based on flat IDs (e.g. kademlia dht, key = cryptographically generated address, value = header w/ timestamp and cryptographic signature). It is also assumed that a node which is equidistant from multiple landmarks will keep a header for each landmark, and send all of them in dht lookup responses. The sender may then select the header which uses the nearest landmark, which helps to further reduce the stretch of the routing scheme (as per the scheme from Strowes's thesis, this optimization is included in the simulation). Senders should keep the header cached and check for updates periodically. Use of a dht would generally introduce an additional logarithmic term to the memory requirement for each node. For the pathfinding itself, the simulation uses a distance vector routing protocol with a soft-state approach. Each node periodically sends a sequence-numbered message to its direct peers (neighbors). If no message is received for a significant amount of time, then the node times out and the information is removed from the routing table. This was the simplest thing I could think of to implement for the simulation; something better should be used for a real implementation.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              routing-sims has a low active ecosystem.
              It has 2 star(s) with 0 fork(s). There are 2 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              routing-sims has no issues reported. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of routing-sims is current.

            kandi-Quality Quality

              routing-sims has no bugs reported.

            kandi-Security Security

              routing-sims has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              routing-sims is licensed under the GPL-2.0 License. This license is Strong Copyleft.
              Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.

            kandi-Reuse Reuse

              routing-sims releases are not available. You will need to build from source code and install.
              routing-sims has no build file. You will be need to create the build yourself to build the component from source.

            Top functions reviewed by kandi - BETA

            kandi has reviewed routing-sims and discovered the below as its top functions. This is intended to give you an instant insight into routing-sims implemented functionality, and help decide if they suit your requirements.
            • The main function of the network .
            • Runs a test on a set of trees .
            • Performs a scaling test on the graph .
            • Return the next hop to the next hop .
            • Processes a received message .
            • Runs test on the given store .
            • Calculate the minimum cert sizes for a given link .
            • Creates a timeline for each node in the tree .
            • Compute the root node as a tree .
            • Evaluate the paths between two nodes .
            Get all kandi verified functions for this library.

            routing-sims Key Features

            No Key Features are available at this moment for routing-sims.

            routing-sims Examples and Code Snippets

            No Code Snippets are available at this moment for routing-sims.

            Community Discussions

            No Community Discussions are available at this moment for routing-sims.Refer to stack overflow page for discussions.

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install routing-sims

            You can download it from GitHub.
            You can use routing-sims like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/Arceliar/routing-sims.git

          • CLI

            gh repo clone Arceliar/routing-sims

          • sshUrl

            git@github.com:Arceliar/routing-sims.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link