lwIP implements a variety of protocols. Support for each protocol can be
individually included in or excluded from the configuration, subject to dependency
constraints. The protocol implementations are mostly compartmentalised into
separate source modules. Support exists for TCP, UDP, IP obviously (and implicitly
ICMP), ARP when using Ethernet, DHCP, SLIP and PPP.
In most cases functionality has been intentionally restricted to avoid
"bloat" (unnecessary features increasing resource use), or in some cases
completely omitted. This is covered in slightly more detail in the Section called Limitations.