Computer
The definition of Standard ML
Lisp and Symbolic Computation
Architectural considerations for a new generation of protocols
SIGCOMM '90 Proceedings of the ACM symposium on Communications architectures & protocols
Commentary on standard ML
CML: A higher concurrent language
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
SIGCOMM '91 Proceedings of the conference on Communications architecture & protocols
A dynamic network architecture
ACM Transactions on Computer Systems (TOCS)
Real-time replication garbage collection
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
The importance of non-data touching processing overheads in TCP/IP
SIGCOMM '93 Conference proceedings on Communications architectures, protocols and applications
Protocol service decomposition for high-performance networking
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Signatures for a network protocol stack: a systems application of Standard ML
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
The structuring of systems using upcalls
Proceedings of the tenth ACM symposium on Operating systems principles
A framework for protocol composition in Horus
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Masking the overhead of protocol layering
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
SIGCOMM '97 Proceedings of the ACM SIGCOMM '97 conference on Applications, technologies, architectures, and protocols for computer communication
A readable TCP in the Prolac protocol language
Proceedings of the conference on Applications, technologies, architectures, and protocols for computer communication
Building reliable, high-performance communication systems from components
Proceedings of the seventeenth ACM symposium on Operating systems principles
Multimethod communication for high-performance metacomputing applications
Supercomputing '96 Proceedings of the 1996 ACM/IEEE conference on Supercomputing
A Network Protocol Stack in Standard ML
Higher-Order and Symbolic Computation
The UDP Calculus: Rigorous Semantics for Real Networking
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
Upgrading transport protocols using untrusted mobile code
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Distributed communication in ML
Journal of Functional Programming
Building reliable, high-performance networks with the Nuprl proof development system
Journal of Functional Programming
Proceedings of the 2005 conference on Applications, technologies, architectures, and protocols for computer communications
A high performance Erlang Tcp/Ip stack
Proceedings of the 2005 ACM SIGPLAN workshop on Erlang
Implementing declarative overlays
Proceedings of the twentieth ACM symposium on Operating systems principles
Supporting Configurable Congestion Control in Data Transport Services
SC '05 Proceedings of the 2005 ACM/IEEE conference on Supercomputing
Engineering with logic: HOL specification and symbolic-evaluation testing for TCP implementations
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Developing a functional Tcp/Ip stack oriented towards Tcp connection replication
LANC '05 Proceedings of the 3rd international IFIP/ACM Latin American conference on Networking
Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems
Deploying safe user-level network services with icTCP
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Melange: creating a "functional" internet
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
CONMan: a step towards network manageability
Proceedings of the 2007 conference on Applications, technologies, architectures, and protocols for computer communications
Optimising TCP/IP connectivity
ERLANG '07 Proceedings of the 2007 SIGPLAN workshop on ERLANG Workshop
Checking the hardware-software interface in spec#
Proceedings of the 4th workshop on Programming languages and operating systems
A Rigorous Approach to Networking: TCP, from Implementation to Protocol to Service
FM '08 Proceedings of the 15th international symposium on Formal Methods
Opis: reliable distributed systems in OCaml
Proceedings of the 4th international workshop on Types in language design and implementation
Turning down the LAMP: software specialisation for the cloud
HotCloud'10 Proceedings of the 2nd USENIX conference on Hot topics in cloud computing
Hi-index | 0.00 |
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.