A bipartite model of distributed systems: Possibilities and implications

Networking software is generally designed in layers. User processes exist at the application layer. They rely on the transport layer to provide them with end-to-end communication. In the distributed systems literature communication is traditionally viewed from the application layer. at the applicati...

Full description

Bibliographic Details
Main Author: Brunstrom, Anna Karin
Format: Others
Language:English
Published: W&M ScholarWorks 1996
Subjects:
Online Access:https://scholarworks.wm.edu/etd/1539623877
https://scholarworks.wm.edu/cgi/viewcontent.cgi?article=3787&context=etd
Description
Summary:Networking software is generally designed in layers. User processes exist at the application layer. They rely on the transport layer to provide them with end-to-end communication. In the distributed systems literature communication is traditionally viewed from the application layer. at the application layer we have no knowledge of the whereabouts of a message once a send operation is completed. at the transport layer, on the other hand, information about the delivery of a message to the transport layer in the receiving host is often available. We believe transport layer information can be better utilized in distributed systems design. This dissertation presents support for this thesis.;We first develop a bipartite system model that allows us to reason formally about transport layer information. We can then propagate transport layer information to the application layer in a formally sound fashion. We define two constructs, delivered and delivered-all, for this purpose. The constructs allow easy implementation of message ordering protocols at the user level. We develop user-level implementations of both causally ordered communication and flush channels.;We also consider the impact of transport layer information on vector time. Transport layer vector time can improve both the computational efficiency and the accuracy of results for certain algorithms. Transport layer vector time also provides the possibility of updating vector time for acknowledgment messages. A distributed termination detection algorithm that takes advantage of this possibility is designed.;Finally, we provide a prototype implementation and associated experimental results. We design and implement a transport layer protocol with support for the delivered and delivered-all constructs. Our flush channel implementation is also included in the prototype system. Our experimental results verify the feasibility of our implementation and show practical evidence in support of the usefulness of transport layer information.