Csc5113c 📥 💎
One week you’re coding a reliable data transfer protocol over UDP (think: TCP from scratch, but sadder). The next week, your lab partner is tasked with launching a selective ACK dropping attack against your implementation using Scapy.
There, nestled between legitimate ACK packets, was a series of RST (reset) packets with a TTL that didn’t match the rest of the stream. Someone—another student in the class, probably working on the offensive security track—had quietly ARP-poisoned my subnet. They weren't stealing data. They were just injecting resets to watch my retransmission timer explode. csc5113c
The first time you see a DNS exfiltration tunnel—where someone encoded /etc/passwd into subdomain requests—it feels like magic. By the end of the lab, you realize it’s just math. Clever, terrifying math. One week you’re coding a reliable data transfer
CSC5113C does something crueler—and far more educational. It forces you to implement the protocols, then immediately break them. Someone—another student in the class, probably working on
Since course codes vary (e.g., University of Oklahoma’s CS/IT sequences), I have framed this around the spirit of an advanced, project-heavy networking/security course. By a Survivor of CSC5113C
One student famously found a delayed SQL injection spread across 47 fragmented ICMP echo requests. The professor didn’t even know that was possible until the student presented it. "Don't trust the wire. Don't trust the endpoint. Don't trust your textbook." This isn't paranoia. It’s the course’s core thesis. The Internet was built on trust. Modern networks survive on verification.
In CSC5113C, the network isn't a series of tubes. It's a gladiator arena. Most networking courses teach you the OSI model, TCP state diagrams, and BGP routing. You memorize port numbers. You calculate checksums. You yawn.