Exp1:
Capture and filter packets from a physical-layer network interface card
Design and implement a program to capture and filter packets from a network interface card, like what are performed by WireShark or tcpdump.
Exp2:
The learning bridge/switch protocol and the ARP protocol (link-layer)
Design and implement the learning bridge/switch protocol and the ARP protocol, and study how they populate the entries of switch tables and ARP tales so that a packet can be correctly sent and forwarded from its source host to its destination host.
Exp3:
Various link-layer Medium Access Control (MAC) protocols for wireless networks
and Ethernet networks
Design and implement a simulation program to study the channel efficiency of the Aloha, Slotted Aloha, CSMA, and CSMA/CD protocols under different operation conditions.
Exp4:
The RIP and OSPF network-layer routing protocols
Design and implement two routing protocol programs to study the behavior and convergence speed of the RIP and OSPF routing protocols, respectively. RIP and OSPF are based on the distance-vector and link-state algorithms, respectively.
Exp5:
The QUIC transport-layer protocol
Design and implement a QUIC-like protocol for a pair of client program and server program. QUIC uses the UDP protocol to provide the error control, flow control, and congestion control of the TCP protocol.
Exp6:
The HTTP/1.0, 1.1, 2.0, 3.0 application-layer protocols
Design and implement a pair of web client program and web server program that support the HTTP 1.0, HTTP 1.1, and HTTP 2.0 protocols, respectively.
Exp7:
Software-Defined Networks (SDN) and the OpenFlow Protocol
Use the Mininet network emulator and an OpenFlow controller to create an SDN and implement several important network functions such as forwarding, filtering, tunneling, etc.
Project
You can choose any topic that you like to design, implement, or modify a network protocol, application, or system.