Communication Protocol Engineering
eBook - ePub

Communication Protocol Engineering

  1. 547 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Communication Protocol Engineering

About this book

The book aims to enable the reader to master the engineering of communication protocols, which are amply present nowadays in mobile phones, tablets, laptops, smart appliances, and service providers' datacenters and clouds. Readers will acquire the theoretical knowledge and practical skills to successfully design, implement, test, and verify their solutions. The key benefits of the new edition align with the latest standard for conformance testing, TTCN-3, along with updated chapters. It explains process algebra CSP and how to model, simulate, and automatically verify CSP models in PAT.

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Communication Protocol Engineering by Miroslav Popovic in PDF and/or ePUB format, as well as other popular books in Computer Science & Computer Networking. We have over one million books available in our catalogue for you to explore.

Information

1Introduction

Originally, the term protocol was related to the customs and regulations dealing with diplomatic formality, precedence, and etiquette. A protocol is actually the original draft, minutes, or record from which a document, especially a treaty, is prepared, e.g., an agreement between states. Today, in the context of computer networks, the term protocol is interpreted as a set of rules governing the format of messages that are exchanged between computers. Sometimes, especially if we want to be more specific, we use the term communication protocol instead.
The title of this book, Communication Protocol Engineering, is used to emphasize the process of developing communication protocols. Like other engineering disciplines, communication protocol engineering typically comprises the following phases (Figure 1.1):
image fig1_1.webp
Figure 1.1Typical communication protocol engineering phases.
  • Requirements and analysis
  • Design
  • Implementation
  • Test and verification
The process described in this book is the union of the UML (Unified Modeling Language)–driven unified development process (Booch et al., 1998) and, Cleanroom engineering (formal system design verification and statistical usage testing), with some elements of Agile programming (particularly unit testing based on JUnit). Of course, each organization should adapt and tune the process to its own needs and goals. For example, one organization may stick to the UML-driven unified development process, another may prefer Cleanroom engineering, yet another may use the combination of both, and so forth.
Because this book is written for the process in which all the existing state-of-the-art methods and techniques in the area are applied, it is independent of any particular engineering process. Therefore, this is as far as we will go in discussions on processes in this book. This book is not about managing processes. Rather, this book is intended for engineers. It provides the knowledge that an engineer needs to work in a modern organization involved in communication protocol engineering.
The chapters are named by typical process phases: requirements and analysis, design, implementation, and test and verification. These chapters are actually used to classify various methods and techniques, and their accompanying tools. As previously stated, the approach taken in this book was to select the best methods and techniques from various methodologies rather than to stick just to a single methodology. The methods and techniques introduced here originate from the following methodologies:
  • UML methodology
  • ITU-T system specification and description methodology
  • Agile unit testing methodology
  • Cleanroom engineering methodology
UML methodology is based on various kinds of graphs, also referred to as diagrams. This book covers all of them, namely:
  • Use case diagrams (Section 2.1)
  • Collaboration diagrams (Section 2.2)
  • Class diagrams (Section 3.1)
  • Object diagrams (Section 3.2)
  • Sequence diagrams (Section 3.3)
  • Activity diagrams (Section 3.4)
  • Statechart diagrams (Section 3.5)
  • Deployment diagrams (Section 3.6)
  • Component diagrams (Section 4.1)
ITU-T system specification and description methodology is based on three domain-specific languages, which this book also covers. These languages are
  • Specification and description language (SDL) (Section 3.7)
  • Message sequence charts (MSC) (Section 3.8)
  • Testing and test control notation, ver. 3 (TTCN-3) (Section 3.9)
Agile unit testing methodology assumes writing the test cases before the code. Today, it is supported by the following two open-source packages (both covered in this book):
  • JUnit, a package for automated unit testing of Java packages (Section 5.1)
  • CppUnit, a library for automated unit testing of C++ modules (Section 5.5.1)
Cleanroom engineering methodology is based heavily on two main methods, both covered in this book. These methods are
  • Formal system design verification. Today, more approaches exist to formal system design verification. This book covers formal verification based on automated theorem proving (Section 5.3).
  • Statistical usage testing (Section 5.4).
The text of the book is organized as follows. At the end of this chapter, in Section 1.1, we introduce the notion of the communication protocol and related definitions.
Chapter 2 is devoted to the requirements and analysis phase of communication protocol engineering. The first part of that chapter introduces UML use case and collaboration diagrams (Section 2.1 and Section 2.2, respectively). The former is used for capturing both functional and nonfunctional system requirements, whereas the latter is used for making system analysis models. The second part of that chapter presents a real-world example—requirements and analysis of an SIP (Session Initiation Protocol, RFC 3261) Softphone. The example starts with the presentation of the domain-specific information related to SIP, continues with the SIP Softphone requirements model (in the form of the corresponding use case diagram), and ends with the SIP Softphone analysis model (in the form of the corresponding collaboration diagram).
Chapter 3 covers the design phase of communication protocol engineering. In this chapter, we will see that communication protocols are actually modeled as finite state machines (FSMs). The first part of the chapter introduces UML diagrams related to the design phase: class, object, sequence, activity, statechart, and deployment diagrams (Section 3.1, Section 3.2, Section 3.3, Section 3.4, Section 3.5, and Section 3.6, respectively). The second part of Chapter 3 covers domain-specific languages, which originated at ITU-T, namely SDL, MSC, and TTCN-3 (Section 3.7, Section 3.8, and Section 3.9, respectively). The third part consists of design examples. The first three examples are rather academic, while the fourth example shows the design of the sliding window concept. The fifth example is a real-world design example—the design of the SIP INVITE client transaction, which is a part of the SIP protocol stack.
Chapter 4 is devoted to the implementation phase of communication protocol engineering. At the beginning of this chapter, we introduce the UML component diagrams (Section 4.1). The second part of Chapter 4 presents various implementation approaches. Section 4.2 presents three examples of approaches that can be used. The main goal of this study is to provoke dilemmas by studying three different concepts of implementation and to promote creative thinking about a spectrum of possible implementation paradigms before restricting ourselves to a single one. This short overview includes the implementations as nested switch-case statements, the implementation based on the interpretation of protocol messages using a protocol definition data structure, and the implementation based on a class hierarchy and state transition map. The second part of Chapter 4 ends with the introduction of the state design pattern (Section 4.3), with a catalogued FSM implementation approach.
The third part of Chapter 4 (Section 4.4) introduces one concrete, industrial-strength implementation paradigm based on the FSM Library, a library of C++ classes used for modeling communication protocols as FSM. This paradigm has been successfully used on a series of real-world projects, such as SS7, DSS1, V5.2, H.323, SIP, and so on. This part of the book covers FSM Library features and internals as well as the rules for writing FSM Library–based implementations. The last part of Chapter 4 contains two real-world examples of the FSM Library–based implementations. The first is the implementation of the POP3 communication protocol, the TCP/IP Internet protocol for receiving e-mail messages. The second is the SIP INVITE client transaction, a part of the SIP protocol stack.
Chapter 5 deals with the testing and verification phase of communication protocol engineering. The first part starts with the introduction of unit testing based on JUnit, the open-s...

Table of contents

  1. Cover
  2. Half Title Page
  3. Title Page
  4. Copyright Page
  5. Dedication
  6. Contents
  7. Preface to the First Edition
  8. Preface to the Second Edition
  9. Author
  10. Chapter 1 Introduction
  11. Chapter 2 Requirements and Analysis
  12. Chapter 3 Design
  13. Chapter 4 Implementation
  14. Chapter 5 Test and Verification
  15. Chapter 6 FSM Library
  16. Index