Due: Tuesday, April 20, 2021, 11:59 pm
Tasks
Problem Set:
- Finish the following questions in Chapter 3 of the textbook
- Chapter 3, Homework Problems and Questions - R4
- Chapter 3, Problems - P28
You can also find the above questions here (Colby IP needed)
- When a client attempts to build a TCP connection to a server, a TCP three-way hand-shake is needed. Suppose Trudy is trying to attack the server. Is it possible to attack the server by generating denial-of-service attack? Justify your answer.
- Find the IPv4 and IPv6 addresses of a dwarf in the robotics lab. Ping
each of the two addresses from another dwarf at three different times
in a day (e.g, morning, noon, evening, etc.). Compare the
round-trip times the two types of traffic, briefly describe and explain
your observation.
- Consider this trace, and draw a sequence
diagram of the connection and label it with the following information:
- Show the absolute starting sequence numbers in each of
the two directions (from the client to the server and the other way
around). It is fine to give a hex value.
- For every packet in the trace, give its main purpose (e.g.,
SYN-ACK, DATA, ACK, etc.) and relative sequence and
acknowledgment numbers.
- For every ACK packet in the trace, indicate which packet it
acknowledges.
- On both client and server sides, indicate the TCP states (label
the time axis with the state names).
- Identify three pairs of packets that could be best used to
estimate the round-trip time (RTT) from client to server and then
back to the client.
List the observed RTTs and discuss the finding. In your opinion,
what was the round trip latency of the network. Explain your
answer.
Programming assignment:
Ping is a commonly used network tool to check the status of a network. The standard ping programs use the Internet Control Message Protocol (ICMP). Try the following command on your terminal to see what you get.
ping google.com
To end the process of the standard ping, you can use ctrl-c. Then, you will get some statistics for that ping request. This screenshot shows the results of a ping request on my computer.
In this programming assignment, you will implement a UDP-based simple ping program using Python. As we discussed in class, ping programs use the client-server model. Your simple ping program will have a client and a server.
Your ping client is to send 30 packets to the target server over UDP. For each ping packet, your client program will determine and print its round trip time (RTT) once receiving the corresponding response. UDP is not a reliable protocol, so your ping client shouldn't wait indefinitely for a reply to a ping packet. Instead, your ping client should set a timeout for a response from a server. In this programming assignment, the timeout value is 55 milliseconds. If not response is received, the client should assume that the ping packet was lost and print a message accordingly. After sending 30 ping packets, your client should output the following information:
- the number of transmitted packets,
- the number of received packets,
- the packet loss rate,
- the maximum RTT in the ping responses,
- the average RTT of the ping responses,
- the minimum RTT in the ping responses, and
- the standard deviation of the RTT of all ping responses.
Download the complete server code
for this UDP-based simple ping, study it carefully, and
write your ping client code. Please note that you are
not expected to modify the server code.
Here is a sample output of my ping program.
Extensions
- Update your client code so that it can keep sending ping packets to
the server until pressing ctrl-c, like the standard ping programs.
- Let your client code be able to read the target server and desired
timeout value from the command line.
- Run your simple ping program under various scenarios (on the same
computer, two computers in the same network, or two computers in the
different networks), compare the statistics, and explain the
variances.
- Play around the timeout value, and explain how it impacts the
statistics.
Submission
Please follow the
submission instructions
to turn in your work.
© 2021 Ying Li. Page last modified:
.