Virtual Circuit Switching

Implemented Virtual Circuit Switching for simple networks along with link disjoint routing algorithms. Implementation was done in C++. The program constructs the graph with the given parameters and finds the minimum 2 shortest cost paths which are link disjoint using a variation of Yen's algorithm. Then a virtual circuit id is assigned to the incoming connections whose demand can be satisfied over the shortest paths found. If the demand cannot be satisfied on both the shortest cost paths, then the connection is dropped.

Queuing and scheduling in a packet switch

This project included implementing different types of queuing and packet scheduling algorithms in a packet switch. Implementation was done in C++. Following queuing methods were implemented:

  • Input Queuing: In case of contention for the output port, only one packet is randomly selected for transmission and others are queued at the input port.
  • Output Queuing: In case of contention, the packets are queued at the output port rather than input port. The queuing can be limited by specifying the maximum number of packets that can be queued, indicated by a parameter.
  • Variation of Input queuing: Instead of considering only the Head of Line packet, a set of 'L' packets per input port are considered, and a suitable algorithm is executed to generate the set of possible packets for transmission. The packets not selected for transmission stay in the corresponding input queue.

Performance analysis show that lowest packet delay and highest link utilization is seen in output queuing.

Scheduling: Waited fair queuing and self-clocked fair queuing scheduling algorithms were implemented to schedule the packets that are queued.

Packet Classification

In this project, hierarchical trie and tuple space pruning techniques for two dimensional matching were implemented and the average search time for each of these techniques were reported. We found that hierarchical trie approach always gives a lower search time compared to the tuple space pruning approach.

Spectrum allocation in cognitive radio networks

In this project, three feedback and learning from peers based implementations of the cognitive radio Medium Access Control Spectrum Allocation protocol were developed. The algorithms were based on a feedback mechanism developed between the Secondary Users to optimize the delay in transmission and the average number of back-offs per second as well as to improve channel utilization. Three different schemes under two broad categories of event driven update and periodic update were implemented and compared for their channel utilization, average number of back-offs and delay in transmission. Also, a behavioural based channel allocation mechanism is proposed for optimizing the transmission parameters.

Topical experts and influential reviewers

This project is about finding the top most reviewers, topical experts and influential reviewers in a network. Amazon movie review dataset from SNAP graph library is used. The dataset is enhanced to include genre information from the imdb database to find topical experts. We use the idea of hubs and authorities in a network to find the topical experts and top most reviewers. The algorithm is implemented in python and a set based measure is used for the comparison.

Virtual Network Computing

In this project, a desktop sharing tool that enables people to view, control and manage systems remotely over a Local Area Network (LAN) was developed. The tool also provides interface to transfer files between the remote systems. This was implemented in Java and is platform independent.