Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

49202: Communication Protocols

Practice Laboratory Exam

May 15, 2023

1    Instructions

[SAMPLE ONLY - AS PER LAB EXAM - DO NOT SUBMIT]

The submission of your answers is due at 17:00 (5 PM) on the day of your lab test. After this time, you can still submit your answers within a further 24 hour period, but you will receive a maximum mark of 50%. There are 10 individual questions, all worth equal marks. Each student has a different network. Do not collaborate with or copy from other students; this will be immediately detectable and all students involved will receive a mark of zero.

Start your VM and open a terminal window (note:  you may always open more than one terminal window if desired).

For this laboratory exam, we will be using the network topology shown in Figure 1.

IMPORTANT - download the exam scripts and coniguration iles by running the following com- mand inside the comm-protocols-labs folder (i.e. cd ˜/comm-protocols-labs irst):

git pull

PLEASE ADVISE VIA MICROSOFT TEAMS IF THIS DOES NOT WORK - I can provide an alternative download mechanism (e.g. if you are in China and cannot access bitbucket directly).

You will now have a folder in comm-protocols-labs called exam.  Change directory to this folder (cd exam).  In this folder, you should see TWO VERSIONS of the compiled Python exam script:

intel_examscript

M1_examscript

These scripts have been built for Intel (Windows, Mac) users and Apple M1/M2 Mac users, respec- tively.  Copy ONLY the script for YOUR PLATFORM according to your student ID number. For example, if my student ID number was 12345678 and I have an Intel-based laptop, I would copy the Intel script as follows:

cp intel_examscript examscript_12345678

If, instead, you have an M1 or newer Mac (NOT the Intel-based Macs) then you should copy the M1 script:

cp M1_examscript examscript_12345678

MAKE SURE YOU RENAME THE CORRECT FILE - THE M1 SCRIPT WILL NOT WORK ON INTEL OR AMD CPUS AND THE INTEL SCRIPT WILL NOT WORK ON M1 CPUS!!

To start the Mininet emulated network, run your exam script exactly as shown below (just one dot - this is not a typo!):

sudo ./examscript_12345678

obviously substituting your own ID number - tab completion will help with the typing!).  The  ./ preix means I want to run the script in THIS folder”; note that this is a little different to what we did in the lab exercises!. Message me on Teams if you have any dificulties.

This will cause the script to generate the speciic set of network parameters for your exam. If you run the script with the wrong number, most of your answers will be marked as incorrect!

Wait a few moments until you can see the mininet prompt (it should look like this: mininet>). It will take about 10- 15 seconds after this point before the network fully converges.

NOTE: For the practice exam ONLY, the script will print lots of debugging information when it is run. You may examine this to see some of the answers to the questions below. For the real exam, this debugging information will not be shown.

2    Exam Tasks

For each of the questions below, you will need to e-mail your responses to me ([email protected]). There is no need to cut and paste the questions - but please number each of your responses.

1.  Using at least 200 packets, measure the minimum, average and maximum round trip time and percentage packet loss from h1-1 to h2-1. You can reduce the ping interval time to 0.5 or 0.2 seconds to speed this up.

2.  Use both traceroute and ping to determine the path taken by these packets. through the network. Record the path.

Every ten seconds, one of the client hosts connected to the left-hand switch is accessing a web page hosted on a web server running on one of the hosts attached to the right-hand switch.

3.  Where is the best place in the network to run WireShark to monitor this trafic (which router or host, and which network interface) so that you can identify the active web client and server? What interface should you run the capture on? (there is only one correct answer to this question

- remember, more than two hosts may be involved in this exchange).

4.  Using your chosen host or router and interface, use Wireshark to determine which host is the web server and which is the client.

5.  Record the size of the application layer payload of the packet containing the HTTP GET request.

6.  Record the time from the irst connection-establishment packet to the inal connection teardown packet in the HTTP session.

7.  From your WireShark observations of network trafic, identify the DNS request or requests occurring immediately before the client connects to the web server.  Record the IP address of the DNS server. What is the size of each DNS request and response packet that you ind? Make sure the DNS response matches the DNS request that you have identiied!

8.  What is the response time (time between sending the request to receiving the corresponding response) for the irst DNS request that you observe?

The remaining questions relate to TCP performance measurements.

9.  Use iperf3 to measure average TCP throughput between r1 and r2 over a period of 100 seconds. Use TCP Reno.

10.  Repeat this measurement, but between h1-1 and h2-1.

References

[1]  James F. Kurose and Keith W. Ross. Computer Networking: A Top Down Approach. 7th edition, 2017.

[2]  Behrouz A. Forouzan. TCP/IP Protocol Suite. 4th edition, 2017.