|
ABSTRACT
This paper describes the design of an implementation of the Transmission Control Protocol using an extension of the Standard ML (SML) language. SML supports higher-order functions, modularity, and type-safe module composition. We find that by using SML we can achieve good structure and good performance simultaneously. Good structure includes a modular decomposition of the protocol stack and of the TCP implementation, a control structure that imposes a total ordering on all events and processes them synchronously, and a test structure that allows component testing to catch problems before system integration. Strategies that help achieve good performance include using fast algorithms, using language constructs that make it easy to stage function evaluation, and language implementation features such as compacting garbage collection.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
Andrew W. Appel and David B. MacQueen. Standard ML of New Jersey. In J. Maluszynski and M. Wirsing, editors, Third International Symposium on Programming Languages Implementation and Logic Programming, pages 1-13, New York, August 1991. Springer- Verlag.
|
 |
3
|
Edoardo Biagioni , Robert Harper , Peter Lee , Brian G. Milnes, Signatures for a network protocol stack: a systems application of Standard ML, Proceedings of the 1994 ACM conference on LISP and functional programming, p.55-64, June 27-29, 1994, Orlando, Florida, United States
|
| |
4
|
R. Braden, D. Borman, and C. Partridge. Computing the internet checksum. RFC 1071, September 1988.
|
 |
5
|
|
 |
6
|
|
| |
7
|
David D. Clark, Van Jacobson, John Romkey, and Howard Salwen. An analysis of TCP processing overhead. IEEE Communications, 27(6), June 1989.
|
| |
8
|
USC Information Sciences Institute. Transmission control protocol. RFC 793, September 1981.
|
 |
9
|
Jonathan Kay , Joseph Pasquale, The importance of non-data touching processing overheads in TCP/IP, Conference proceedings on Communications architectures, protocols and applications, p.259-268, September 13-17, 1993, San Francisco, California, United States
|
 |
10
|
|
| |
11
|
|
| |
12
|
|
| |
13
|
|
 |
14
|
|
| |
15
|
iETF Network Working Group. Requirements for internet hosts -communication layers. RFC 1122, October 1989.
|
 |
16
|
|
| |
17
|
M. Persson, K. Odling, and D. Eriksson. A switching software architecture prototype using real time declarative language. In international Switching Symposium, Yokohama, 25- 30 October 1992.
|
| |
18
|
R. Rashid, R. Baron, A. Forin, D. Golub, M. Jones, D. Orr, and R. Sanzi. MACH: a foundation for open systems (operating systems). In Workstation Operating Systems: Proceedings of the Second Workshop on Workstation Operating Systems, Sept 1989.
|
 |
19
|
|
 |
20
|
|
| |
21
|
B. Zorn and P. Hilfinger. A memory allocation proffer for C and Lisp programs. In Proceedings of the Summer 1988 USENIX Conference, San Francisco, June 1988.
|
CITED BY 23
|
|
|
|
|
Xiaoming Liu , Christoph Kreitz , Robbert van Renesse , Jason Hickey , Mark Hayden , Kenneth Birman , Robert Constable, Building reliable, high-performance communication systems from components, ACM SIGOPS Operating Systems Review, v.33 n.5, p.80-92, Dec. 1999
|
|
|
|
|
|
Robbert van Renesse , Kenneth P. Birman , Roy Friedman , Mark Hayden , David A. Karr, A framework for protocol composition in Horus, Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing, p.80-89, August 20-23, 1995, Ottowa, Ontario, Canada
|
|
|
|
|
|
|
|
|
Ian Foster , Jonathan Geisler , Carl Kesselman , Steven Tuecke, Multimethod communication for high-performance metacomputing applications, Proceedings of the 1996 ACM/IEEE conference on Supercomputing (CDROM), p.41-es, January 01-01, 1996, Pittsburgh, Pennsylvania, United States
|
|
|
Steve Bishop , Matthew Fairbairn , Michael Norrish , Peter Sewell , Michael Smith , Keith Wansbrough, Engineering with logic: HOL specification and symbolic-evaluation testing for TCP implementations, ACM SIGPLAN Notices, v.41 n.1, p.55-66, January 2006
|
|
|
|
|
|
|
|
|
Parveen Patel , Andrew Whitaker , David Wetherall , Jay Lepreau , Tim Stack, Upgrading transport protocols using untrusted mobile code, Proceedings of the nineteenth ACM symposium on Operating systems principles, October 19-22, 2003, Bolton Landing, NY, USA
|
|
|
Steve Bishop , Matthew Fairbairn , Michael Norrish , Peter Sewell , Michael Smith , Keith Wansbrough, Rigorous specification and conformance testing techniques for network protocols, as applied to TCP, UDP, and sockets, ACM SIGCOMM Computer Communication Review, v.35 n.4, October 2005
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|