Timing UDP: Mechanized semantics for sockets, threads, and failures

10Citations
Citations of this article
10Readers
Mendeley users who have this article in their library.

This article is free to access.

Abstract

This paper studies the semantics of failure in distributed programming. We present a semantic model for distributed programs that use the standard sockets interface; it covers message loss, host failure and temporary disconnection, and supports reasoning about distributed infrastructure. We consider interaction via the UDP and ICMP protocols.To do this, it has been necessary to: • construct an experimentallyvalidated post-hoc specification of the UDP/ICMP sockets interface;• develop a timed operational semantics with threads, as such programsare typically multithreaded and depend on timeouts; • model the behaviour of partial systems, making explicit the interactions that the infrastructure offers to applications; • integrate the above with semantics for an executable fragment of a programming language (OCaml) with OS library primitives; and • use tool support to manage complexity, mechanizing the model with the HOL theorem prover. We illustrate the whole with a module providing nai've heartbeat failure detection.

Cite

CITATION STYLE

APA

Wansbrough, K., Norrish, M., Sewell, P., & Seantov, A. (2002). Timing UDP: Mechanized semantics for sockets, threads, and failures. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 2305, pp. 278–294). Springer Verlag. https://doi.org/10.1007/3-540-45927-8_20

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free