A formal description technique for protocol engineering
A formal description technique for protocol engineering
L.0: a parallel executable temporal logic language
Conference proceedings on Formal methods in software development
The X-Kernel: An Architecture for Implementing Network Protocols
IEEE Transactions on Software Engineering
TCP/IP illustrated (vol. 1): the protocols
TCP/IP illustrated (vol. 1): the protocols
A language-based approach to protocol implementation
IEEE/ACM Transactions on Networking (TON)
TCP Vegas: new techniques for congestion detection and avoidance
SIGCOMM '94 Proceedings of the conference on Communications architectures, protocols and applications
A structured TCP in standard ML.
SIGCOMM '94 Proceedings of the conference on Communications architectures, protocols and applications
TCP/IP illustrated (vol. 2): the implementation
TCP/IP illustrated (vol. 2): the implementation
Generating efficient protocol code from an abstract specification
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
Analysis of techniques to improve protocol processing latency
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
Automated Protocol Implementation with RTAG
IEEE Transactions on Software Engineering
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Efficient Automated Protocol Implementation Using RTAG
Efficient Automated Protocol Implementation Using RTAG
Packet types: abstract specification of network protocol messages
Proceedings of the conference on Applications, Technologies, Architectures, and Protocols for Computer Communication
A Network Protocol Stack in Standard ML
Higher-Order and Symbolic Computation
From protocol stack to protocol heap: role-based architecture
ACM SIGCOMM Computer Communication Review
Upgrading transport protocols using untrusted mobile code
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
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
Formal Methods in System Design
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
Better extensibility through modular syntax
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
binpac: a yacc for writing application protocol parsers
Proceedings of the 6th ACM SIGCOMM conference on Internet measurement
Mace: language support for building distributed systems
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Model checking large network protocol implementations
NSDI'04 Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation - Volume 1
MACEDON: methodology for automatically creating, evaluating, and designing overlay networks
NSDI'04 Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation - Volume 1
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
The Design and Implementation of a Domain-Specific Language for Network Performance Testing
IEEE Transactions on Parallel and Distributed Systems
A network programming language based on concurrent processes and regular expressions
SE'07 Proceedings of the 25th conference on IASTED International Multi-Conference: Software Engineering
A Rigorous Approach to Networking: TCP, from Implementation to Protocol to Service
FM '08 Proceedings of the 15th international symposium on Formal Methods
NSDI'09 Proceedings of the 6th USENIX symposium on Networked systems design and implementation
Verifying low-level implementations of high-level datatypes
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Hi-index | 0.00 |
Prolac is a new statically-typed, object-oriented language for network protocol implementation. It is designed for readability, extensibility, and real-world implementation; most previous protocol languages, in contrast, have been based on hard-to-implement theoretical models and have focused on verification. We present a working Prolac TCP implementation directly derived from 4.4BSD. Our implementation is modular---protocol processing is logically divided into minimally-interacting pieces; readable---Prolac encourages top-down structure and naming intermediate computations; and extensible---subclassing cleanly separates protocol extensions like delayed acknowledgements and slow start. The Prolac compiler uses simple global analysis to remove expensive language features like dynamic dispatch, resulting in end-to-end performance comparable to an unmodified Linux 2.0 TCP.