Minimal TCP/IP implementation with proxy support

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 implementation 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 particular, 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.

[1]  J. Mogul Network locality at the scale of processes , 1991, TOCS.

[2]  Alan Kullberg,et al.  Incremental updating of the Internet checksum , 1990, RFC.

[3]  Anil Rijsinghani,et al.  Computation of the Internet Checksum via Incremental Update , 1994, RFC.

[4]  Vern Paxson,et al.  TCP Congestion Control , 1999, RFC.

[5]  Steve Parker,et al.  Some Testing Tools for TCP Implementors , 1998, RFC.

[6]  Jon Postel,et al.  User Datagram Protocol , 1980, RFC.

[7]  Vern Paxson,et al.  On estimating end-to-end network path properties , 2001, SIGCOMM LA '01.

[8]  PartridgeCraig,et al.  Improving round-trip time estimates in reliable transport protocols , 1991 .

[9]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[10]  B. R. Badrinath,et al.  I-TCP: indirect TCP for mobile hosts , 1995, Proceedings of 15th International Conference on Distributed Computing Systems.

[11]  Jon Postel,et al.  Internet Protocol , 1981, RFC.

[12]  Craig Partridge,et al.  A faster UDP , 1993, TNET.

[13]  Paul E. McKenney,et al.  Efficient demultiplexing of incoming TCP packets , 1992, SIGCOMM 1992.

[14]  Joseph D. Touch,et al.  The TIME-WAIT state in TCP and its effect on busy servers , 1999, IEEE INFOCOM '99. Conference on Computer Communications. Proceedings. Eighteenth Annual Joint Conference of the IEEE Computer and Communications Societies. The Future is Now (Cat. No.99CH36320).

[15]  Mahmoud Naghshineh,et al.  Bluetooth: vision, goals, and architecture , 1998, MOCO.

[16]  Rodnay Zaks Programming the 6502 , 1980 .

[17]  David D. Clark,et al.  Window and Acknowledgement Strategy in TCP , 1982, RFC.

[18]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.0 , 1996, RFC.

[19]  Brian E. Carpenter,et al.  Architectural Principles of the Internet , 1996, RFC.

[20]  Sally Floyd,et al.  TCP Selective Acknowledgement Options , 1996 .

[21]  Robert T. Braden,et al.  TIME-WAIT Assassination Hazards in TCP , 1992, RFC.

[22]  Jerome H. Saltzer,et al.  End-to-end arguments in system design , 1984, TOCS.

[23]  Joseph Pasquale,et al.  Profiling and reducing processing overheads in TCP/IP , 1996, TNET.

[24]  David D. Clark,et al.  Modularity and efficiency in protocol implementation , 1982, RFC.

[25]  V. Jacobson,et al.  Congestion avoidance and control , 1988, SIGCOMM '88.

[26]  Paul E. McKenney,et al.  Efficient demultiplexing of incoming TCP packets , 1992, SIGCOMM '92.

[27]  B. Ahlgren,et al.  The Performance Of A No-Copy API For Communication , 1995, Third IEEE Workshop on the Architecture and Implementation of High Performance Communication Subsystems.

[28]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.1 , 1997, RFC.

[29]  K. K. Ramakrishnan,et al.  A Proposal to add Explicit Congestion Notification (ECN) to IP , 1999, RFC.

[30]  Suresh Singh,et al.  M-TCP: TCP for mobile cellular networks , 1997, CCRV.

[31]  Lars-Åke Larzon,et al.  UDP lite for real time multimedia applications , 1999 .

[32]  Vern Paxson,et al.  End-to-end Internet packet dynamics , 1997, SIGCOMM '97.

[33]  Sally Floyd,et al.  TCP Selective Acknowledgment Options , 1996, RFC.

[34]  Jon Postel,et al.  Internet Control Message Protocol , 1981, RFC.

[35]  Robert T. Braden,et al.  Requirements for Internet Hosts - Communication Layers , 1989, RFC.

[36]  Srinivasan Seshan,et al.  Improving TCP/IP performance over wireless networks , 1995, MobiCom '95.