CS/ECE 438: Communication Networks - Engineering Assignment Help

Download Solution Order New Solution
Assignment Task:

In this assignment, you will implement traditional shortest-path routing with the link-state (LS) and/or the distance/path vector (DV/PV) protocols. Your program will be run on every node in an unknown network topology to perform routing tasks to deliver the test messages instructed by our manager program. The implementation you need to submit depends on whether you work alone or as a group of two: 

- If working alone: 

You can choose one of LS, DV, or PV to implement. 

- If working as a group of 2: 

Your group must do both LS and DV/PV (choose one of DV or PV). The administrative, non-algorithm- logic components of LS and DV/PV are identical, so a pair can do those together. For the algorithms themselves, we recommend that you each take one. 

Besides the implementation of the routing protocols, you will have to deal with the unfortunate distinction between “network order” and “host order”, AKA endianness. The logical way to interpret 32 bits as an integer is to call the left-most bit the highest, and the right-most the ones place. This is the standard that programs sending raw binary integers over the internet are expected to follow. Due to historical quirks, however, x86 processors store integers reversed at the byte level. Look up htons, htonl, ntohs, ntohl() for information on how to deal with it.

 

1. Environment Setup 

1.1 Your Group GitLab Repository 

You will use git to maintain your code submission. In this machine problem, each group (including solo groups) is given a new repository: 

Go to your MP0/MP1 repository and check the file “mp2_mp3_group_members.txt” for your group number. Use your UIUC login credentials to access this repository. Both you and your teammate (if a group of two) have access to this repository. We will grade your programs that are pushed to this repository. Feel free to use this repository to maintain your code during development. For this machine problem, you must maintain your code in the mp2 folder. 

1.2 The Auto-grader Ubuntu Machine 

Here, we describe the environment the auto-grader uses to compile and test your code. 

We updated the autograder to use Ubuntu 18.04.3 LTS Desktop, so you must make sure that your submitted code can be compiled (by make) and run on that OS version in a virtual machine. (You can search how to upgrade or use the built-in Software Updater application if your VM is using v18.04.1.) You are recommended to set up a virtual machine with the same OS version. Use apt install command to install necessary development tools such as make, gcc, g++, clang to ensure that you use the latest compiler versions (that the auto-grader uses). The auto- grader runs every night and hence giving you plentiful chances to discover and resolve any potential environment inconsistency issues you may have. 

 

2. Test Environment 

2.1 Network Configurations 

In this MP, everything will be contained within a single VM. The test networks (i.e., nodes and network topologies) are constructed by using virtual network interfaces (created by ifconfig) and configuring firewall rules (configured by iptables). Your program will act as a node in the constructed network to perform routing tasks. That is, if there are N nodes in the test network, there will be N instances of your programs being started, each of which runs as one of the nodes with an ID that is associated to an IP address (see below for details).

What follows summarizes the network configurations used in this MP: 

• The topology's connectivity is defined in a file that gets read by the provided Perl script (make_topology.pl) to create the network environment. 

• The initial link costs between nodes are defined in files that tell nodes (your programs) what their initial link costs to other nodes are (if they are in fact neighbors) when the nodes are being run. See Section 3 for details. 

• For each node, a virtual network interface (eth0:1, eth0:2, etc) will be created and given an IP address (10.1.1.X). 

• A node with ID X gets the IP address 10.1.1.X where 0 ≤ X ≤ 255. 

• Your program will be given its ID on the command line, and when binding a socket to receive UDP packets, it should specify the corresponding IP address (rather than INADDR_ANY / NULL). 

• To construct a test network topology, iptables rules will be applied to restrict which of these addresses can talk to which others. For instance, 10.1.1.30 and 10.1.1.0 can talk to each other if and only if they are neighbors in the test network topology. 

• A node's only way to determine who its neighbors are is to see who it can directly communicate with. Nodes do not get to see the aforementioned connectivity file. 

• The links between nodes can change during the test. This is done by setting new iptables rules during the test. 

• The link costs between nodes can change during the test. This is done by letting the Manager send a cost update packet to your node (see next Section). 

2.2 Our Manager 

While running, your nodes will receive instructions and updated information from a manager program. You are not responsible for submitting an implementation of this manager. As mentioned above, the manager program (manager_send) used by the auto-grader is provided to you. Your interaction with the manager is very simple: 

The manager sends messages in individual UDP packets to your nodes on UDP port 7777. Your nodes execute the instructions upon receiving the manager’s packets. Your nodes do not need to reply to the manager in any way. 

The manager's packets have two types of instructions: (1) sending a message data packet and (2) updating neighbor link cost. 

This CS/ECE 438: Engineering Assignment has been solved by our Engineering Experts at My Uni Paper. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our Experts are well trained to follow all marking rubrics & referencing style.

Be it a used or new solution, the quality of the work submitted by our assignment experts remains unhampered. You may continue to expect the same or even better quality with the used and new assignment solution files respectively. There’s one thing to be noticed that you could choose one between the two and acquire an HD either way. You could choose a new assignment solution file to get yourself an exclusive, plagiarism (with free Turnitin file), expert quality assignment or order an old solution file that was considered worthy of the highest distinction.

Get It Done! Today

Country
Applicable Time Zone is AEST [Sydney, NSW] (GMT+11)
+

Every Assignment. Every Solution. Instantly. Deadline Ahead? Grab Your Sample Now.