Level-IP is a Linux userspace TCP/IP stack, implemented with TUN/TAP devices.
The main goals are to:
- Learn TCP/IP
- Learn Linux systems/network programming
- Learn Linux Socket API
The results of the learning experience will be accompanied by explanatory blog posts:
- Part 1, Ethernet & ARP: http://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp
- Part 2, IPv4 & ICMPv4: http://www.saminiir.com/lets-code-tcp-ip-stack-2-ipv4-icmpv4
- Part 3, TCP Basics & Handshake: http://www.saminiir.com/lets-code-tcp-ip-stack-3-tcp-handshake/
- Part 4, TCP Data Flow & Socket API: http://www.saminiir.com/lets-code-tcp-ip-stack-4-tcp-data-flow-socket-api/
If you intend to compile and hack Level-IP, read Development.
- Linux kernel IP stack, source code
- Xiaochen Wang's TAP device & TCP/IP implementation, source code
- QEMU Userspace IP stack, source code
See LICENSE.md (MIT)