Abstract
Network programming is notoriously hard to understand: one has to deal with a variety of protocols (IP, ICMP , UDP, TCP etc.), concurrency, pac ket loss, host failure, timeouts, the complex sockets interface to the protocols, and subtle portability issues. Moreover, the behavioural properties of operating systems and the network are not well documented.
A few of these issues have been addressed in the process calculus and distributed algorithm communities, but there remains a wide gulf between what has been captured in semantic models and what is required for a precise understanding of the behaviour of practical distributed programs that use these protocols.
In this paper we demonstrate (in a preliminary way) that the gulf can be bridged. We give an operational model for socket programming with a substantial fraction of UDP and ICMP,including loss and failure. The model has been validated by experiment against actual systems. It is not tied to a particular programming language,but can be used with any language equipped with an operational semantics for system calls — here we give such a language binding for an OCaml fragment. We illustrate the model with a few small network programs.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
T. Arts and M. Dam. Verifying a distributed database lookup manager written in Erlang. In World Congress on Formal Methods (1), pages 682–700, 1999.
R. Amadio and S. Prasad. Localities and failures. In Foundations of Software Technology and Theoretical Computer Science, LNCS 880. Springer, 1994.
F. Baker. Requirements for IP version 4 routers. Internet Engineering Task Force, June 1995. http://www.ietf.org/rfc.html.
K. Bhargavan, S. Chandra, P. J. McCann, and C. A. Gunter. What packets may come: Automata for network monitoring. In Proc. POPL 2001, January 2001.
M. Berger and K. Honda. The two-phase commit protocol in an extended — calculus. In Proceedings of the 7th International Workshop on Expressiveness in Concurrency, EXPRESS’ 00, 2000.
E. Biagioni. A structured TCP in standard ML. In Proc. SIGCOMM, 1994.
R. Braden. Requirements for internet hosts-communication layers, STD 3, RFC 1122. IETF, October 1989. http://www.ietf.org/rfc.html.
C. Fournet, G. Gonthier, J.-J. L-evy, L. Maranget, and D. R-emy. A calculus of mobile agents. In Proc. CONCUR’ 96, LNCS 1119. Springer, August 1996.
S. J. Garland, N. Lynch, and M. Vaziri. IOA reference guide, December 2000. http://nms.lcs.mit.edu/~garland/IOA/.
M. Hayden. The Ensemble System. PhD thesis, Cornell University, January 1998. Technical Report TR98-1662.
K. Honda and M. Tokoro. An object calculus for asynchronous communication. In Proceedings of ECOOP’ 91, LNCS 512, pages 133–147, July 1991.
IEEE. Information Technology-Portable Operating System Interface (POSIX)-Part xx: Protocol Independent Interfaces (PII), P1003.1g. 2000.
INMOS. Occam2 Reference Manual. Prentice-Hall, 1987.
X. Leroy et al. The Objective-Caml System, Release 3.00. INRIA, April 27 2000. http://caml.inria.fr/ocaml/.
L. Lamport. The temporal logic of actions. ACM Transactions on Programming Languages and Systems, 16(3):872–923, May 1994.
_ N. A. Lynch. Distributed algorithms. Morgan Kaufmann, 1996.
R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes, Parts I + II. Information and Computation, 100(1):1–77, 1992.
S. J. Mullender. Distributed Systems. ACM Press, 1993.
J. Postel. User Datagram Protocol, STD 6, RFC 768. Internet Engineering Task Force, August 1980. http://www.ietf.org/rfc.html.
J. Postel. Internet Protocol, STD 6, RFC 791. Internet Engineering Task Force, September 1981. http://www.ietf.org/rfc.html.
B. C. Pierce and D. N. Turner. Pict: A programming language based on the pi-calculus. In Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press, 2000.
J. Reppy. CML: A higher-order concurrent language. In Proc. Programming Language Design and Implementation (PLDI), pages 293–259, June 1991.
J. Riely and M. Hennessy. Distributed processes and location failures. In Automata, Languages and Programming, LNCS 1256. Springer, 1997.
P. Sewell. On implementations and semantics of a concurrent programming language. In Proceedings of CONCUR’ 97, LNCS 1243, pages 391–405, 1997.
A. Serjantov, P. Sewell, and K. Wansbrough. The UDP calculus: Rigorous semantics for real networking. Technical Report 515, Computer Laboratory, University of Cambridge, 2001. http://www.cl.cam.ac.uk/users/pes20/Netsem.
W. R. Stevens. TCP/IP Illustrated: The Protocols, volume 1 of Addison-Wesley Professional Computing Series. Addison-Wesley, 1994.
W. R. Stevens. UNIX Network Programming, Networking APIs: Sockets and XTI, volume 1. Prentice Hall, second edition, 1998.
The SwitchWare project. http://www.cis.upenn.edu/~switchware, 2001.
B. Thomsen, L. Leth, and T.-M. Kuo. A Facile tutorial. In Proceedings of CONCUR’ 96, LNCS 1119, pages 278–298. Springer-Verlag, August 1996.
P. T. Wojciechowski and P. Sewell. Nomadic Pict: Language and infrastructure design for mobile agents. IEEE Concurrency, 8(2):42–52, April-June 2000.
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Serjantov, A., Sewell, P., Wansbrough, K. (2001). The UDP Calculus: Rigorous Semantics for Real Networking. In: Kobayashi, N., Pierce, B.C. (eds) Theoretical Aspects of Computer Software. TACS 2001. Lecture Notes in Computer Science, vol 2215. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45500-0_27
Download citation
DOI: https://doi.org/10.1007/3-540-45500-0_27
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42736-0
Online ISBN: 978-3-540-45500-4
eBook Packages: Springer Book Archive