{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

mobisys2003 - Full TCP/IP for 8-Bit Architectures Adam...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
Full TCP/IP for 8-Bit Architectures Adam Dunkels Swedish Institute of Computer Science [email protected], http://www.sics.se/˜adam/ Abstract We describe two small and portable TCP/IP implemen- tations fulfilling the subset of RFC1122 requirements needed for full host-to-host interoperability. Our TCP/IP implementations do not sacrifice any of TCP’s mecha- nisms such as urgent data or congestion control. They support IP fragment reassembly and the number of mul- tiple simultaneous connections is limited only by the available RAM. Despite being small and simple, our im- plementations do not require their peers to have com- plex, full-size stacks, but can communicate with peers running a similarly light-weight stack. The code size is on the order of 10 kilobytes and RAM usage can be con- figured to be as low as a few hundred bytes. 1 Introduction With the success of the Internet, the TCP/IP protocol suite has become a global standard for communication. TCP/IP is the underlying protocol used for web page transfers, e-mail transmissions, file transfers, and peer- to-peer networking over the Internet. For embedded sys- tems, being able to run native TCP/IP makes it possi- ble to connect the system directly to an intranet or even the global Internet. Embedded devices with full TCP/IP support will be first-class network citizens, thus being able to fully communicate with other hosts in the net- work. Traditional TCP/IP implementations have required far too much resources both in terms of code size and mem- ory usage to be useful in small 8 or 16-bit systems. Code size of a few hundred kilobytes and RAM requirements of several hundreds of kilobytes have made it impossi- ble to fit the full TCP/IP stack into systems with a few tens of kilobytes of RAM and room for less than 100 kilobytes of code. TCP [21] is both the most complex and the most widely used of the transport protocols in the TCP/IP stack. TCP provides reliable full-duplex byte stream transmission on top of the best-effort IP [20] layer. Because IP may reorder or drop packets between the sender and the re- ceiver, TCP has to implement sequence numbering and retransmissions in order to achieve reliable, ordered data transfer. We have implemented two small generic and portable TCP/IP implementations, lwIP (lightweight IP) and uIP (micro IP), with slightly different design goals. The lwIP implementation is a full-scale but simplified TCP/IP im- plementation that includes implementations of IP, ICMP, UDP and TCP and is modular enough to be easily ex- tended with additional protocols. lwIP has support for multiple local network interfaces and has flexible con- figuration options which makes it suitable for a wide va- riety of devices. The uIP implementation is designed to have only the ab- solute minimal set of features needed for a full TCP/IP stack. It can only handle a single network interface and does not implement UDP, but focuses on the IP, ICMP and TCP protocols.
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}