Skip to content

raffidil/arlnc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 

Repository files navigation

Block Based RLNC simulator for M.Sc. thesis

This repository contains the block based rlnc message passing protocol based on systematic encoding. The code redundancy and generation window size is adjusting with a specific algorithm which is based on receiver's ACK.

The implementation is in Python and the simulation uses simpy, a discrete-event simulation tool for python.

Installation

  1. Clone the repository

  2. cd into rlnc directory

  3. install the dependencies

pip install -r requirements.txt

Usage

You can run the simulation simply by running main.py.

python main.py

All configuration can be passed to the simulation as parameters for BlockBasedRLNC class constructor.

Example

from block_based_rlnc import BlockBasedRLNC

simulation = BlockBasedRLNC(
                field_order=2**8, generation_size=16,
                packet_size=16, total_size=1024*32,
                initial_redundancy=1, initial_window_size=1,
                ge_loss_good_to_bad=0.05, ge_loss_bad_to_good=0.2,
                exponential_loss_param=0.045,
                loss_rate=0.15, ee_loss_error=0.25, seed=2,
                force_to_recreate_new_data=True,
                loss_mode="ge", approach="arlnc")

data = simulation.run_simulation()

Example of visualization of the results can be found in rlnc/report.ipynb jupyter notebook.

About

Implantation of the block-based Adjustable RLNC method (M.Sc. thesis simulation)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published