This INGINIOUS cours will be used during the SIGCOMM'21 Hackathon
Here are some suggestions for new exercises.
Building a network
Computing forwarding tables
The port-address algorithm
Virtual circuit organization
Routing in virtual circuit networks
The connection-oriented service
The message-mode and the stream-mode
Principles of the connection establishment
Guessing sequence numbers of data packets
Different messages, same checksum
In the course, we mentionned that checksums are not suitable to authenticate messages. To illustrate this, consider the following checksum function.
def checksum(msg): """ msg is a string """ sum = 0 for c in msg: sum = (sum + ord(c)) % 256 return sum
- Can you find a message, different from "hello", that provides the same checksum?
Consider a Diffie-Hellman exchange where the modulus is 42 and the base is 7. Alice chooses 21 as her secret integer, and Bob chooses 12 as his secret integer.
- What is the value sent by Alice to Bob?
- What is the value sent by Bob to Alice?
- What is the computed key?
Packet traces questions
The TFTP protocol
There is short question that asks students to read RFC1350 to understand the basics of the TFTP protocol. It would be interesting to complement this exercise with a few packet traces collected from a real TFTP protocol that demonstrate how this protocol supports uploads and downloads and how it handles retransmissions.
The DNS protocol
We already have ten exercises that cover the DNS. New packet traces exercises could be developed in two directions:
- packet traces showing DNS over HTTPS or DNS over TLS
- packet traces showing DNS extensions that have not yet been discussed in the ebook
HTTP versions 1 and 2
There are a few HTTP traces that are present in this section. The main difficulty with HTTP is that web browsers typically produce huge packet traces that are difficult to analyze only. Still, it could be interesting to provide packet traces collected on real servers so that students can understand the differences in configuration with different popular servers. We could focus on only the index.html file from popular servers and see:
- the version of HTTP that it uses
- the cookies that it sets
- the HTTP extensions that it uses
It would also be interesting to have small packet traces that demonstrate the utilization of HTTP extensions
QUIC and HTTP/3
QUIC is not yet included in the ebook, but this is an extension that is very likely for next year. Small packet traces showing the main features of QUIC and perhaps HTTP/3 would be useful to prepare this new chapter.
We already have several exercises that cover the basics of TCP. It would be useful to have exercises showing TCP extensions like:
- TCP Fast Open
- Multipath TCP
As the ebook does not explain IPv4 and only focuses on IPv6. Still, many students will be exposed to IPv4 and it would be useful to have packet traces showing:
- IPv4 packets going through a router so that students can see that Ethernet addresses are changed and TTL is decremented
- IPv4 fragmentations
- IPv4 ping
- IPv4 traceroute
The open questions on routing protocols currently focus on the basics of the protocols. It could be possible to collect packet traces in ipmininet exercises and ask some questions to the students so that they learn how to analyze RIP, OSPF and BGP packets.
We could provide some packet traces showing the utilization of Ethernet extensions such as:
- quality of service
- Ethernet flow control
It could be useful to collect 802.1d packet traces, e.g. from ipmininet exercises, so that students can observe how the protocol works in reality.
The ebook is a bit weak in this description of the Wi-Fi protocols. It would be interesting to collect packet traces showing all the Wi-Fi details using the monitor mode. This could also require extending the ebook to provide more details about the protocol.