Skip to content

A scalable network simulator capable of adapting to and establishing communication with various bridge station architectures. This project accurately replicates real-world ARP (Address Resolution Protocol) and routing algorithms to facilitate efficient communication across the network

Notifications You must be signed in to change notification settings

sairamkiran9/network-emulator

Repository files navigation

Network Emulator

  • Developed by Sri Sai Ram Kiran Muppana & Sahithi Vungarala for the course DATA/COMPUTER COMMUNICATIONS (CNT5505-01.sp09), Computer Science, FSU

  • Author/email address

    SM22BT - Sri Sai Ram Kiran Muppana
    SV22N - Sahithi Vungarala

  • Platform type: linux

  • Commands supported in stations/routers/bridges

    3.1 stations:

     send <destination> <message>     // send message to a destination host
     show arp 		                // show the ARP cache table information
     show pq 		                    // show the pending_queue
     show	host 		                // show the IP/name mapping table
     show	iface 		                // show the interface information
     show	rtable 		                // show the contents of routing table
     quit                             // close the station
    

    3.2 routers:

     show	arp 		                // show the ARP cache table information
     show	pq 		                    // show the pending_queue
     show	host 		                // show the IP/name mapping table
     show	iface 		                // show the interface information
     show	rtable 		                // show the contents of routing table
     quit                             // close the router
    

    3.3 bridges:

     show sl 		                    // show the contents of self-learning table
     quit                             // close the bridge
    
  • To start the emulation, run

    run_simulation

    , which emulates the following network topology

        B              C                D
        |              |                |
       cs1-----R1------cs2------R2-----cs3
        |              |                |
        -------A--------                E
    

    cs1, cs2, and cs3 are bridges. R1 and R2 are routers. A to E are hosts/stations. Note that A is multi-homed, but it is not a router.

  • Difficulties that we have encountered during the development of the project

    • When the pending queue had more than 5 IP packets, not all packets were reaching the destination. Interestingly, only packets at even positions were received. This posed a dilemma, and initially, we were unable to identify the issue. Later, we discovered that the problem was related to the receiver buffer size at the station. After increasing the buffer size, the issue was resolved.
  • A LOG of the progress we make from time to time

    • Creating project folder structure
    • Creating bridge class to save primary details => take input arguments and save to class object
    • initializing socket and creating a symbolic link
    • creating station class to save primary details => take input arguments and save to class object
    • read and load ifaces and rtable files
    • adapt project1 into this i.e implement client-server program to broadcast msgs
    • Now based on the symlink data connect station to bridge
    • ensure broadcasting msg is working
    • now create encapsulated data frame, pending queue class to store ip-packet
    • nexthop calculation
    • implement arp protocol mechanism
    • router forwarding and show, quit commands
    • signal handling in bridge and station
    • retry mechanism to check connection

About

A scalable network simulator capable of adapting to and establishing communication with various bridge station architectures. This project accurately replicates real-world ARP (Address Resolution Protocol) and routing algorithms to facilitate efficient communication across the network

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published