Partov (Portable and Reliable Tool fOr Virtualization)


Quick Links:   Description   Assignments   Collaborators

Description:

Partov (Portable and Reliable Tool fOr Virtualization) is a network simulation and virtualization system, employed as a teaching tool for the computer networks course. The system was developed by Behnam Momeni, and many of the students and TAs have assisted in the process. If you are interested in using Partov for programming assignments at your university course, please contact me.

Documentation:

Client Framework (CF) is a part of Partov project. This framework provides the ability to simulate variety of virtual networks by connecting to the central Partov server. Students use the Client Framework (CF), to interact with the Partov server. The CF user manual could be found here (in Persian here)

Code:

The partov source code is being released under GPLv3. If you are interested in obtaining the code, please contact me.

Assignments:

Click on the assignment name for a summary of the assignment, and on the PDF link for the full version of the assignment.

Assignment Summaries:

Bandwidth Throttler

One of the methods with which bandwidth usage is controlled in the networks is with the help of Bandwidth Throttlers. In this assignment, students are asked to implement a bandwidth throttler which operates at layer 4, and throttles TCP and UDP flows. A topology with three nodes, namely A, B, and C is assigned to each student. Nodes A and C communicate with each other using TCP and UDP flows through B. Node B could inspect those packets in the way and decide to drop or forward them. In this scenario, node B acts as a transparent proxy between A and C. For detailed testing of the throttler functionality nodes A and C could communicate in different modes. This communication contains single or multiple flow transfers while each flow's rate will be amplified by the responder node. So throttler could see small upload rates and larger download rates as usually seen in the Internet (consider a file downloading or web browsing activity. By the end of this assignment, students learn how to detect different TCP/UDP flows by inspecting IP, TCP and UDP headers, how to determine flow's rates and how to limit a flow's rate which provides good insight into the 3rd and 4th network layers.

Simplified FTP over UDP

File transfer protocol or FTP, provides reliability by using TCP at the transport layer. In this assignment students are asked to implement a simplified file transfer protocol using UDP at the transport layer. As UDP provides a non-reliable packet delivery mechanism, student should take care of reliability in their own implementation and at the application level. Each student is provided with a topology which includes two nodes, one for serving a file and one for receiving it (like two independent nodes on the Internet). Students are then asked to execute their protocol on both nodes and have different files transferred between the two nodes, while providing a reliable connection. In other words maintaining packet ordering at the receiver and providing retransmission service in the event of packet loss or data corruption. This assignment helps students in learning concepts like end-to-end reliability, packet reordering, packet corruption, and packet loss/timeout. So they understand the concepts which are used in the TCP with more depth while keeping away from high complexities of TCP itself.

DHCP & ARP

In this assignment students implement Dynamic Host Configuration Protocol (DHCP) servers/clients and Address Resolution Protocol (ARP) which focuses the data-link, network, and application layers. A LAN topology with multiple clients and servers which are connected to Internet through a gateway node was assigned to each student. Students are required to implement DHCP servers and clients in the topology. Students are then required to implement DHCP client and server which are deployed in the given topology, while considering receiving several offers from different DHCP servers. They are also asked to implement ARP for client nodes. So one node after getting its IP/configuration from one of DHCP servers, could use ARP for translating IP addresses to MAC addresses and connect to the Internet so node could send/reply packets to outside network (like ICMP messages). After this assignment, students know about address resolution via ARP, acquiring IP and other network information (like gateway address) via DHCP and more on the network layering concepts.

Simplified STP

In this assignment students were given a topology consisting of multiple nodes. In the first step, students are asked to implement a learning bridge with which nodes in the topology are connected together. Hence the bridge has to inspect traffic from nodes, learn their MAC addresses, and forward their traffic on appropriate interfaces. In the next step, students were asked to upgrade their learning bridges and implement a simplified version of the spanning tree protocol (STP) among a set of bridges to obtain a loop-free topology. STP was modified to simplify the implementation work for the students. By making bridge instances active and inactive during the simulation, other bridges in the topology could detect this change in the topology and re-arrange themselves properly to create a new spanning tree among themselves. With this assignment students could understand how network nodes could participate in a distributed algorithms by local decisions.

Mobile IP over Ethernet (MIPoE)

A more challenging assignment was on node mobility, namely Mobile IP over Ethernet (MIPoE). The purpose of Mobile IP protocol is to let nodes move through different networks while preserving their IP addresses, hence connections to those addresses. In the assignment each student is given a virtual topology consisting of three LANs as shown in the Figure below. There is a wireless access point (AP) in each LAN, making three wireless regions in the topology. Each wireless area is connected to Internet through its AP and has collision areas with the other two areas. Students should deploy their protocol implementation over APs and mobile nodes. There are two mobile nodes in the topology. At the start of simulation the nodes start moving through wireless regions, each by a different path. Students then implement the access points (AP) so moving nodes could keep their IP address. And implement the mobile nodes so they can request for IP address from APs, speaking with APs when they join/leave each wireless area.The APs establish an overlay network among themselves. Then APs could detect where each IP address should be routed to by node's continuous movement and send its packets through the overlay network to the appropriate AP. By completing this route, the node could keep its IP address while moving physically to other networks. A trace-route could show this movement clearly. This assignment familiarizes students with overlay networks, as well as designing networking protocols based on concepts such as IP tunnelling.

Content Distribution Network (CDN)

Content Distribution Networks (CDN) is a network of content providers, replicating same content on geographically distributed servers. So large number of requests for the content could be served as quickly as possible. In this assignment students are assigned a topology consisting of several geographically distributed server farms. Students are asked to create an overlay network over those server farms, redirecting requests to appropriate server farms based on the loads and paths latency of server farms. Load factors will be changed dynamically, simulating large request volumes. After this assignment, students should understand overlay networking, load balancing, and have the ability to design a communication protocol for special purposes like between CDN server farms.

Network Address Translation (NAT) Server

Computers need public IP addresses for communicating over the Internet, but all computers do not have public IP addresses. NAT server makes computers with private IP addresses to send/receive packets to other computers over the Internet by translating private IP addresses to public IP addresses and vice versa. Also a mechanism called reverse NAT or static NAT allows outside computers to contact a computer with private IP address behind the NAT server. In this assignment students face with two problems: (1) They should use UDP protocol to ask a server about the address of a file given its name and (2) they should use TCP to request for downloading of that file from found address. Students should implement a server for serving both requests. This server should send one of its ports as the result (if it found that file hosted on of the LAN's computers) and configure its static NAT to forward next TCP requests to that port allowing the file to be downloaded from internal LAN's computer. By this assignment, students learn about NAT mechanism, IP addressing, and UDP and TCP ports.

NAT Server

Computers need public IP addresses for communicating over the Internet, but all computers do not have public IP addresses. NAT server makes computers with private IP addresses to send/receive packets to other computers over the Internet by translating private IP addresses to public IP addresses and vice versa. Also a mechanism called reverse NAT or static NAT allows outside computers to contact a computer with private IP address behind the NAT server. In this assignment students face with two problems: (1) They should use UDP protocol to ask a server about the address of a file given its name and (2) they should use TCP to request for downloading of that file from found address. Students should implement a server for serving both requests. This server should send one of its ports as the result (if it found that file hosted on of the LAN's computers) and configure its static NAT to forward next TCP requests to that port allowing the file to be downloaded from internal LAN's computer. By this assignment, students learn about NAT mechanism, IP addressing, and UDP and TCP ports.

Transmission Control Protocol

The Transmission Control Protocol (TCP) is one of the most important and mostly used protocols in today computer networks. This assignment tries to make students familiar with TCP internals. By this assignment students learn about TCP window management, congestion control, ISN, sequence and acknowledgment numbers, and TCP flags. They use their own implemented TCP for connecting one client to one socket-based server and downloading a file from it. Students also get familiar with UDP protocol internals as part of this assignment. So their client starts by asking for address of a file over their own implemented UDP from UDP-name saver and then continue by downloading it using their own implemented TCP from a socket-based external server.

DHT and Chord Protocol

Chord protocol is a peer-to-peer protocol which uses Distributed Hash Table (DHT) in order to keep some information (including file name and its hosting IP/port addresses in this assignment) completely distributed among N peers. This eliminates the single point of failure while each node will become responsible for just some parts of the stored information. Students will have 4 virtual nodes in this assignment and should establish a DHT structure among them. Then each node/peer must be able to get commands of its user and so insert/search/remove desired information (file name and its hosting IP/port addresses) in the DHT. By this assignments students learn about distributed protocols, the DHT, the Chord protocol, and solutions and benefits of facing point of failures of a system.

Collaborators:

(sorted by collaboration start date)