Implemented as a academic project, under Prof. Haibin Zhang in CMSC-626 (Principles of Computer Security)
Aim to simulate a network with byzantine faults and overcome them using protocol defined in Network Layer protocols with Byzantine Robustness, Radia Perlman.
- Java 8
- Maven
- Compile the project using Maven and
pom.xml
- Create a folder named 'bftNetwork_lib' and copy the dependencies in this folder
- Copy the Java archive (jar) to the parent folder of 'bftNetwork_lib'
- Use the below command to run the simulator
java -jar bftTolerantNetwork.jar
- Manipulating network packets
- Sending invalid Identification/Faking Neighbors (a switch 'C', faking 'A' as 'B' and 'B' as 'A')
- Flooding invalid Public Key List
- Flooding invalid Link States by decreasing link costs
- Adding more faulty behaviors and testing
- Implementing route calculation and sending Datagrams
- Adding end-hosts as network nodes to control data packets