Level-IP ![Build Status](https://camo.githubusercontent.com/404c24a4d5abc041a6441cfb09f0f768689d133cef90392e3410f80d34695671/68747470733a2f2f7472617669732d63692e6f72672f73616d696e6969722f6c6576656c2d69702e7376673f6272616e63683d6d6173746572)
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/
See Getting Started.
For development documentation, start with Development.
Reference works
- Linux kernel TCP/IP stack, source code
- picoTCP, source code
- Xiaochen Wang's TCP/IP stack, source code
License
See LICENSE.md (MIT)