附註:Includes bibliographical references (pages 129-132) and index.
Cover -- Table of Contents -- Preface -- Acknowledgements -- 1 Network Protocols -- Protocol development problems -- Existing solutions -- Protocol layering -- Protocol frameworks -- Protocol languages -- The Austin Protocol Compiler -- 2 The Timed Abstract Protocol Notation -- Messages and channels -- Processes -- Actions -- Statements -- Protocol style -- Justification -- Details of TAP -- 3 Execution Models of Network Protocols -- Two Models -- Abstract Execution Model -- Concrete Execution Model -- 4 Equivalence of Execution Models -- Protocol states -- Equivalent protocol states -- State transitions -- Computations -- Whole computations -- Equivalent computations -- Proof of equivalence -- Implementation consistency -- Implementation completeness -- Related work -- 5 Preserving Fairness -- Global fairness -- Local fairness -- Proof of fairness equivalence -- Fairness and the Austin Protocol Compiler -- 6 The Austin Protocol Compiler -- Architecture of the compiler -- APC runtime interfaces -- Architecture of the runtime system -- Implementation of the concrete execution model -- 7 Two examples -- The secret exchange protocol -- The accelerated heartbeat protocol -- 8 A DNS Server -- The authoritative DNS server -- Implementation performance -- Performance of the Austin Protocol Compiler -- 9 Concluding Remarks -- Summary -- Future directions -- Bibliography.
摘要:-The Austin Protocol Compiler presents a protocol specification language called the Timed Abstract Protocol (TAP) notation. This book will finally close the communication gap between the protocol verifiers and the protocol implementers. The TAP notation uses two types of semantics: an abstract semantics that appeals to the protocol verifiers and a concrete semantics which appeals to the protocol implementers. The Austin Protocol Compiler illustrates that the two types of semantics of TAP are equivalent. Thus, the correctness of TAP specification of some protocol, that is established based on the abstract semantics of TAP, is maintained when this specification is implemented based on concrete semantics of TAP. The equivalence between the abstract and concrete semantics of TAP suggests the following three-step method for developing a correct implementation of a protocol in this book: 1. Specify the protocol using the TAP notation. 2. Verify the correctness of the specification based on the abstract semantics of TAP 3. Implement the specification based on the concrete semantics of TAP For step 3, this book introduces the Austin Protocol Compiler (APC) that takes as input, a TAP specification of some protocol, and produces as output C-code that implements this protocol based on the concrete semantics of TAP. The Austin Protocol Compiler is designed for a professional audience composed of protocol designers, verifiers, reviewers and implementers. This volume is also suitable for graduate-level students in computer science and electrical engineering.