3 ms·
A good way to internalize how everything works is to mess around with pcaps and Wireshark. Try using libpcap (or even just scapy) to decode protocols and see if
by apstls 8y ago
A good way to internalize how everything works is to mess around with pcaps and Wireshark. Try using libpcap (or even just scapy) to decode protocols and see if you can match the Wireshark output, then move up to reconstructing streams and dealing with quirks like fragmentation, etc.
If you're looking for something more structured and/or in-depth, try implementing a basic userspace tcp/ip stack. We had a few projects related to this back in college that I unfortunately can't seem to find right now, but there are undoubtedly some solid resources out there (I recall seeing http://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/ http://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-ar... on HN a while ago.)
If you wanted to get more experience on the enterprise networking side of things, instead of the software side, search around for training labs for Cisco certs like the CCNA exam. I remember seeing some virtual lab exercises that looked pretty interesting, though I never did any more than look them up so I can't vouch for any myself.