Code Monkey home page Code Monkey logo

ahc_dsr's Introduction

DSR Algorithm on AHCv2

This is an implementation of DSR algorithm on AHCv2 as a network layer component. Main implementation is built upon DSR implementation from AHCv1 but there are some key changes:

  • It now works with generic link layer component but for its route maintenance feature it requires a link layer with broken link reporting.
  • Parts of algorithm that were implemented on node component got reimplemented on DSR component.
  • Added some optimizations to algorithm like intermediate hops caching routes.
  • Improved doc strings and types.
  • Simplifications to algorithm without losing features.

These are the some of the assumptions made in this implementation:

  • Every link is symmetric.
  • Link layer passes link error messages to network layer.

DSR (Dynamic Source Routing) Algorithm

DSR is a source routing algorithm that forms a route on-demand when a transmitting node requests one. However, it uses source routing (sender specifies the route) instead of relying on the routing table at each intermediate device.

When a node wants to transmit a package it first checks its route cache, if a route to destination node doesn't exist, it broadcasts a route request message to the network. Every node that sees that request for the first time rebroadcasts the message if it is not the destination. When destination receives the request it sends a route reply with the accumulated route back to the source. When source receives the route reply it caches that route and uses that route for subsequent transmissions.

There is also a route maintenance feature by sending back maintenance messages when a node fails to deliver.

Install AHCv2

pip3 install adhoccomputing

or alternatively,

git clone https://github.com/cengwins/ahc.git
cd ahc
pip3 install .

or alternatively, you can checkout this project and run make ahc.

ahc_dsr's People

Contributors

hasanyldz 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.