A readable TCP in the Prolac protocol language

  • Authors:
  • Eddie Kohler;M. Frans Kaashoek;David R. Montgomery

  • Affiliations:
  • M.I.T. Laboratory for Computer Science, Cambridge, MA;M.I.T. Laboratory for Computer Science, Cambridge, MA;M.I.T. Laboratory for Computer Science, Cambridge, MA

  • Venue:
  • Proceedings of the conference on Applications, technologies, architectures, and protocols for computer communication
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.