A toolkit created for the course Data Communication and Networks, from UIB.
It is a blazingly fast CLI that helps you to do some basic calculations that are needed in the course:
- Entropy
- Code characterization
- Efficiency of flux control mechanisms
- Efficiency of error control mechanisms
- Ethernet networks efficiency
- WiFi Networks Efficiency
- Checksums
Using CDR Toolkit is as easy as downloading the executable, opening a terminal where you have the file downloaded and running it, regardless of the platform you are on.
Cargo is the package manager for Rust, you can find more information about it here. To use cdr_toolkit with cargo, we can install it with the following command:
cargo install cdr_toolkit
Once installed, we can run it directly by typing the following command:
cdr_toolkit
Once the program is executed, we will be presented with a menu with all the options that we can choose:
It allows us to calculate the Entropy of a source from the probabilities of its symbols through the following formula:
where
Make the basic calculations of the characterization of a source. These are the average length of the symbols, the Kraft inequality and the Efficiency. These are calculated through the following formulas:
Average length of the code words
Kraft's inequality
Source code efficiency
Calculates the efficiency of the desired mechanism, using the correct formula in each case depending on the data that is available.
Calculates the efficiency of the desired mechanism, using the correct formula in each case depending on the data that is available.
Calculates the efficiency of an Ethernet network given the following formulas.
where
- 512 in Ethernet 10BASE-T and Ethernet 100BASE-T4
- 4096 in Ethernet 1000BASE-T
Calculates the efficiency of a Wi-Fi network.
Calculates a checksum from the given numbers. The calculation is done using the complement to 1 sum method.
This tool is still in "beta", this means that it could have some errors or bugs. It is strongly recommended to follow the instructions provided by the program.
It would also be appreciated if any kind of bug or error is found, it is communicated to me to be able to solve it as soon as possible.