Skip to content

Latest commit

 

History

66 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

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

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages