thesis

thesis - SICS Technical Report T2001:20 ISSN 1100-3154...

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

View Full Document Right Arrow Icon
SICS Technical Report ISSN 1100-3154 T2001:20 ISRN:SICS-T–2001/20-SE Minimal TCP/IP implementation with proxy support Adam Dunkels adam@sics.se February 2001 Abstract Over the last years, interest for connecting small devices such as sensors to an existing network infrastructure such as the global Internet has steadily increased. Such devices often has very limited CPU and memory resources and may not be able to run an instance of the TCP/IP protocol suite. In this thesis, techniques for reducing the resource usage in a TCP/IP implemen- tation is presented. A generic mechanism for offloading the TCP/IP stack in a small device is described. The principle the mechanism is to move much of the resource demanding tasks from the client to an intermediate agent known as a proxy. In par- ticular, this pertains to the buffering needed by TCP. The proxy does not require any modifications to TCP and may be used with any TCP/IP implementation. The proxy works at the transport level and keeps some of the end to end semantics of TCP. Apart from the proxy mechanism, a TCP/IP stack that is small enough in terms of dynamic memory usage and code footprint to be used in a minimal system has been developed. The TCP/IP stack does not require help from a proxy, but may be configured to take advantage of a supporting proxy. Keywords: Proxy methods, TCP/IP implementation, embedded systems.
Background image of page 1

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

View Full DocumentRight Arrow Icon
Background image of page 2
Contents 1 Introduction 1 1.1 Goals ........................................... 1 1.2 Methodology and limitations .............................. 2 1.3 Thesis structure ...................................... 2 2 Background 3 2.1 The TCP/IP protocol suite ............................... 3 2.1.1 The Internet Protocol — IP ........................... 4 2.1.2 Internet Control Message Protocol — ICMP ................. 5 2.1.3 The simple datagram protocol — UDP .................... 6 2.1.4 Reliable byte stream — TCP .......................... 6 2.2 The BSD implementations ................................ 1 1 2.3 Buffer and memory management ............................ 1 2 2.4 Application Program Interface ............................. 1 2 2.5 Performance bottlenecks ................................. 1 2 2.5.1 Data touching .................................. 1 3 2.6 Small TCP/IP stacks ................................... 1 3 3 The proxy based architecture 14 3.1 Architecture ........................................ 1 5 3.2 Per-packet processing 1 5 3.2.1 IP fragment reassembly 1 5 3.2.2 Removing IP options 1 6 3.3 Per-connection processing 1 6 3.3.1 Caching unacknowledged data ......................... 1 7 3.3.2 Ordering of data 1 8 3.3.3 Distributed state 2 0 3.4 Alternative approaches 2 4 3.5 Reliability ......................................... 2 4 3.6 Proxy implementation 2 4 3.6.1 Interaction with the FreeBSD kernel ...................... 2 5 4 Design and implementation of the TCP/IP stack 26 4.1 Overview 2 6 4.2 Process model ....................................... 2 7 4.3 The operating system emulation layer 2 7 4.4 Buffer and memory management 2 8 4.4.1 Packet buffers — pbufs 2 8 4.4.2 Memory management 3 0 4.5 Network interfaces .................................... 3 0 4.6 IP processing 3 1 4.6.1 Receiving packets 3 1 i
Background image of page 3

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

View Full DocumentRight Arrow Icon
4.6.2 Sending packets .................................. 3 2 4.6.3 Forwarding packets ................................ 3 2 4.6.4 ICMP processing ................................. 3 3 4.7 UDP processing ...................................... 3 3 4.8 TCP processing 3 4 4.8.1 Overview ..................................... 3 4 4.8.2 Data structures 3 5 4.8.3 Sequence number calculations .......................... 3 7 4.8.4 Queuing and transmitting data .........................
Background image of page 4
Image of page 5
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 81

thesis - SICS Technical Report T2001:20 ISSN 1100-3154...

This preview shows document pages 1 - 5. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online