skip to main content
research-article

A stateless approach to connection-oriented protocols

Published:22 September 2008Publication History
Skip Abstract Section

Abstract

Traditional operating system interfaces and network protocol implementations force some system state to be kept on both sides of a connection. This state ties the connection to its endpoints, impedes transparent failover, permits denial-of-service attacks, and limits scalability. This article introduces a novel TCP-like transport protocol and a new interface to replace sockets that together enable all state to be kept on one endpoint, allowing the other endpoint, typically the server, to operate without any per-connection state. Called Trickles, this approach enables servers to scale well with increasing numbers of clients, consume fewer resources, and better resist denial-of-service attacks. Measurements on a full implementation in Linux indicate that Trickles achieves performance comparable to TCP/IP, interacts well with other flows, and scales well. Trickles also enables qualitatively different kinds of networked services. Services can be geographically replicated and contacted through an anycast primitive for improved availability and performance. Widely-deployed practices that currently have client-observable side effects, such as periodic server reboots, connection redirection, and failover, can be made transparent, and perform well, under Trickles. The protocol is secure against tampering and replay attacks, and the client interface is backward-compatible, requiring no changes to sockets-based client applications.

References

  1. Allman, M., Paxson, V., and Stevens, W. 1999. RFC 2581: TCP Congestion Control. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Aura, T. and Nikander, P. 1997. Stateless connections. In Proceedings of the International Conference on Information and Communication Security. Beijing, China, 87--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Ballani, H. and Francis, P. 2004. Towards a deployable IP anycast service. In Proceedings of the Workshop on Real, Large Distributed Systems. San Francisco, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Banga, G., Mogul, J. C., and Druschel, P. 1999. A scalable and explicit event delivery mechanism for UNIX. In Proceedings of the USENIX Annual Technical Conference. Monterey, CA, 253--265. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bavier, A., Bowman, M., Chun, B., Culler, D., Karlin, S., Muir, S., Peterson, L., Roscoe, T., Spalink, T., and Wawrzoniak, M. 2004. Operating systems support for planetary-scale network services. In Proceedings of the Symposium on Networked Systems Design and Implementation. San Francisco, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bernstein, D. 2005. SYN Cookies. http://cr.yp.to/syncookies.html.Google ScholarGoogle Scholar
  7. Bloom, B. H. 1970. Space/time tradeoffs in hash coding with allowable errors. In Commun. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Braden, R. 1994. RFC 1644: T/TCP -- TCP Extensions for Transactions. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Carson, M. and Santay, D. 2005. NIST Net. http://www-x.antd.nist.gov/nistnet.Google ScholarGoogle Scholar
  10. Chakravorty, R., Banerjee, S., Rodriguez, P., Chesterfield, J., and Pratt, I. 2004. Performance optimizations for wireless wide-rea networks: comparative study and experimental evaluation. In Proceedings of the International Conference on Mobile Computing and Networking. Philadelphia, PA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Crane, D., Pascarello, E., and James, D. 2005. Ajax in Action. Manning Publications, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Daemen, J. and Rijmen, V. 1999. AES Proposal: Rijndael. http://csrc.nist.gov/encryption/aes/rijndael/Rijndael.pdf.Google ScholarGoogle Scholar
  13. Ely, D., Spring, N., Wetherall, D., Savage, S., and Anderson, T. 2001. Robust congestion signaling. In Proceedings of the International Conference on Network Protocols. Riverside, CA, 332--341. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Fan, L., Cao, P., and Almeida, J. 1998. Summary cache: a scalable wide-Area Web cache sharing protocol. In Proceedings of ACM SIGCOMM. Vancouver, Canada. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and Berners-Lee, T. 1999. RFC 2616: Hypertext Transfer Protocol -- HTTP /1.1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Floyd, S. 1991. Connections with multiple congested gateways in packet-switched networks part 1: one-way traffic. SIGCOMM Comput. Commun. Rev. 21, 5, 30--47. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Gupta, R., Chen, M., McCanne, S., and Walrand, J. 2000. A receiver-driven transport protocol for the web. In Proceedings of the INFORMS Telecommunications Conference. San Antonio, TX.Google ScholarGoogle Scholar
  18. Hacker, T. J., Noble, B. D., and Athey, B. D. 2002. The effects of systemic packet loss on aggregate TCP flows. In Proceedings of IEEE/ACM Supercomputing. Baltimore, MD. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Hsieh, H.-Y., Kim, K.-H., Zhu, Y., and Sivakumar, R. 2003. A receiver-centric transport protocol for mobile hosts with heterogeneous wireless interfaces. In Proceedings of the International Conference on Mobile Computing and Networking. San Diego, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Jain, R. 1991. The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling. John Wiley and Sons, Inc.Google ScholarGoogle Scholar
  21. Juels, A. 1999. Client puzzles: a cryptographic countermeasure against connection depletion attacks. In Proceedings of Networks and Distributed Security Systems. San Diego, CA.Google ScholarGoogle Scholar
  22. Krishnamurthy, B., Mogul, J. C., and Kristol, D. M. 1999. Key differences between HTTP/1.0 and HTTP/1.1. In Proceedings of the World Wide Web Conference. Toronto, Canada. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Lemon, J. 2001. Kqueue: a generic and scalable event notification facility. In Proceedings of the USENIX Annual Technical Conference. Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Mogul, J., Brakmo, L., Lowell, D. E., Subhraveti, D., and Moore, J. 2004. Unveiling the transport. SIGCOMM Comput. Commun. Rev. 34, 1, 99--106. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. National Internet Measurement Infrastructure. 2005. Distribution of packet drop rates. http://www.icir.org/models/NIMI-drop-rates.ps.Google ScholarGoogle Scholar
  26. Pai, V. S., Druschel, P., and Zwaenepoel, W. 1999. IO-Lite: a unified I/O buffering and caching system. In Proceedings of the Symposium on Operating Systems Design and Implementation. New Orleans, LA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Patel, P., Whitaker, A., Wetherall, D., Lepreau, J., and Stack, T. 2003. Upgrading transport protocols using untrusted mobile code. In Proceedings of the Symposium on Operating Systems Principles. Bolton Landing, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Rost, S., Byers, J., and Bestavros, A. 2001. Cyclone server architecture: streamlining the delivery of popular content. In Proceedings of the International Workshop on Web Caching and Content Distribution. Boston, MA.Google ScholarGoogle Scholar
  29. route|daemon9. 1998. T/TCP vulnerabilities. Phrack Magazine 8, 53.Google ScholarGoogle Scholar
  30. Savage, S., Cardwell, N., Wetherall, D., and Anderson, T. 1999. TCP congestion control with a misbehaving receiver. SIGCOMM Comput. Commun. Rev. 29, 5, 71--78. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Semke, J., Mahdavi, J., and Mathis, M. 1998. Automatic TCP buffer tuning. In Proceedings of ACM SIGCOMM. Vancouver, Canada. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Shieh, A., Myers, A. C., and Sirer, E. G. 2005. Trickles: a stateless network stack for improved scalability, resilience, and flexibility. In Proceedings of the Symposium on Networked Systems Design and Implementation. Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Snoeren, A. C. 2002. A session-based approach to internet mobility. Ph.D. thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology.Google ScholarGoogle Scholar
  34. Standard Performance Evaluation Corporation. 1999. The SPECweb99 benchmark.Google ScholarGoogle Scholar
  35. Stoica, I. 2000. Stateless core: a scalable approach for quality of service in the internet. Ph.D. thesis, Department of Electrical and Computer Engineering, Carnegie Mellon University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Sultan, F. 2004. System support for service availability, remote healing and fault tolerance using lazy state propagation. Ph.D. thesis, Division of Computer and Information Sciences, Rutgers University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Sultan, F., Bohra, A., and Iftode, L. 2003. Service ontinuations: an operating system mechanism for dynamic migration of Internet service sessions. In Proceedings of the Symposium on Reliable Distributed Systems. Florence, Italy.Google ScholarGoogle Scholar
  38. Sun Microsystems. 1989. RFC 1094: NFS: Network File System Protocol Specification. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Zúquete, A. 2002. Improving the functionality of SYN cookies. In Proceedings of the IFIP Communications and Multimedia Security Conference. Portoroz, Slovenia. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A stateless approach to connection-oriented protocols

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM Transactions on Computer Systems
              ACM Transactions on Computer Systems  Volume 26, Issue 3
              September 2008
              108 pages
              ISSN:0734-2071
              EISSN:1557-7333
              DOI:10.1145/1394441
              Issue’s Table of Contents

              Copyright © 2008 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 22 September 2008
              • Accepted: 1 July 2008
              • Revised: 1 January 2008
              • Received: 1 July 2005
              Published in tocs Volume 26, Issue 3

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article
              • Research
              • Refereed

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader