Skip to main content

Über dieses Buch

Communication protocols form the operational basis of computer networks and tele­communication systems. They are behavior conventions that describe how com­munication systems inter­act with each other, defining the temporal order of the interactions and the formats of the data units exchanged – essentially they determine the efficiency and reliability of computer networks. Protocol Engineering is an important discipline covering the design, validation, and implementation of communication protocols.

Part I of this book is devoted to the fundamentals of communication protocols, describing their working principles and implicitly also those of computer networks. The author introduces the concepts of service, protocol, layer, and layered architecture, and introduces the main elements required in the description of protocols using a model language. He then presents the most important protocol functions. Part II deals with the description of communication proto­cols, offering an overview of the various formal methods, the essence of Protocol Engineering. The author introduces the fundamental description methods, such as finite state machines, Petri nets, process calculi, and temporal logics, that are in part used as semantic models for formal description techniques. He then introduces one represen­tative technique for each of the main description approaches, among others SDL and LOTOS, and surveys the use of UML for describing protocols. Part III covers the protocol life cycle and the most important development stages, presenting the reader with approaches for systematic protocol design, with various verification methods, with the main implementation techniques, and with strategies for their testing, in particular with conformance and interoperability tests, and the test description language TTCN. The author uses the simple data transfer example protocol XDT (eXample Data Transfer) throughout the book as a reference protocol to exemplify the various description techniques and to demonstrate important validation and implementation approaches.

The book is an introduction to communication protocols and their development for undergraduate and graduate students of computer science and communication technology, and it is also a suitable reference for engineers and programmers. Most chapters contain exercises, and the author's accompanying website provides further online material including a complete formal description of the XDT protocol and an animated simulation visualizing its behavior.



Principles of communication protocols


1 Services

Computer networks provide services. These services allow us to exchange data, programs, music files, pictures, movies or other documents. They can be used to download programs, to start them remotely, to update remote data bases, or to access web sites; they can also help users to communicate with others partners, and much more. The term service is of fundamental importance for the understanding of the processes in computer networks. It is closely related to the term protocol and represents an essential element for their description, validation, and use. This chapter deals with services. We start with a short overview of the different kinds of services. Thereafter we introduce the model of a communication service and present the basic concepts for its formal description using a model language. Finally we describe the service provided by our example protocol XDT and give a formal description of it using the model language.
Hartmut König

2 Protocols

In this chapter we consider how communication services are provided. For this, we look inside the service provider. We introduce the notion of protocol and explain the relations which exist between protocol procedures and the interactions at the service interface. Next we describe the basic elements of communication protocols and show how they can be described. Finally we continue introducing the XDT protocol.
Hartmut König

3 Layers

After introducing the notion of protocol as the basis for the provision of services in the last chapter, we now consider how the communication between the peer entities is implemented. This leads us to the notion of layer. The wide range of tasks to be fulfilled in a computer network forces one to structure the communication software. For this, a horizontal layering of functions has prevailed. This chapter introduces the concept of layering. The structure of the chapter corresponds to that of the previous ones. We begin with the principles of layering. Next we discuss their description. We finish the chapter with the introduction of the last part of the XDT protocol in which it is integrated into a layered architecture.
Hartmut König

4 Layered architectures

In computer networks and communication systems defined layered architectures are used, in which the communication protocols are embedded. These architectures define the functionality of the different layers and specify the interaction principles between them. They are mostly specified by standardization bodies or industrial consortia. Layered architectures are usually the product of a lengthy development process that is often influenced beside technical requirements by companies’ strategies and political trade-offs. Protocol developers have little influence on this process and must accept the architecture as given. In this chapter we present several examples of layered architectures and discuss the differences among the approaches. We first introduce related terms. Next we present as examples the OSI reference model, the TCP/IP architecture, and the B-ISDN reference model.
Hartmut König

5 Protocol functions

After introducing the basic concepts of services, protocols, and layered architectures in previous chapters we return once more to the protocol as the main concept to have a closer look at it. Communication protocols typically contain a number of procedures and mechanisms which appear in many protocols. These procedures are usually called protocol functions. Many of these protocol functions in turn use other protocol functions. Which protocol functions are applied in a protocol depends on the purpose of the protocol. Protocols in higher layers usually apply other functions than those in lower layers. There are, however, many functions that are applied in many protocols, such as connection management, flow control, error control, or synchronization. These and other protocol functions are introduced in this chapter. With this introduction, we want to give the reader a deeper insight into the most important protocol mechanisms, the diversity of their procedures, and the complexity resulting from this.
Hartmut König

6 Case study: The Internet protocol stack

At the end of the first part of the book we want to show how the protocol mechanisms introduced in the previous chapters are applied in protocols used in practice. What modifications are applied? What additional features and mechanisms are used to meet various requirements? We use the currently most important protocol architecture for this: the Internet protocol stack. Note that it is not the objective of this chapter to give a detailed introduction to the relevant Internet protocols. This can be found in many introductory books about the Internet. We restrict ourselves to selected aspects of these protocols to complete our overview of the basic protocol principles.
Hartmut König

Description of communication protocols


7 Formal description methods

Various methods are used to describe communication protocols. The search for suitable description methods for communication protocols in the 1980s yielded a broad range of approaches out of which some fundamental methods have crystallized. These methods constitute the basis of the semantic models of the various formal description techniques. Therefore we first consider the most important description methods in this chapter before we turn to the formal description techniques. From these, finite state machines, Petri nets, process calculi, and temporal logics have crystallized as the most important and most common ones. Apart from these methods, other approaches were also investigated, such as the use of grammars, data flow languages, and functional languages. They did not receive wider attention because they were not applied to real-life protocols. The use of high-level programming languages was considered likewise. Programming languages support the algorithmic description of protocol procedures as well as the generation of prototypes, but they usually do not possess a formally defined semantics. In addition, programming languages are primarily implementation languages and not specification languages. They often yield descriptions which are close to an implementation. For that reason, high-level programming languages are not used for protocol description. Many formal description techniques, however, use programming language features.
Hartmut König

8 Formal description techniques

The description methods introduced in the preceding chapter form the basis for the development of specification languages or formal description techniques. They are applied as semantic models for these techniques. In contrast to the description methods, formal description techniques (FDTs) permit an (almost) complete description of services, protocols, and distributed systems. The requirements on the design of formal description techniques resemble at first glance those of programming language design. Important requirements are a high expressiveness, i.e., the description technique should be able to represent all relevant elements of a service and a protocol, a reasonable level of abstraction to make no reference to possible implementations, the presence of suitable structuring features to promote the understanding and handling of the specification in the further development steps, and the suitability of the language features such that they do not limit or inadequately affect further development stages. Unlike programming languages, formal description techniques demand a formally defined syntax and semantics. The latter represents the crucial difference. It is required to ensure the unique interpretation of the formal specifications.
Hartmut König

Development of communication protocols


9 Protocol development process

Communication protocols are implemented for the most part in software. The development stages of a protocol from its design to integration/installation correspond principally to the phases known from software development [Somm 00]. There are, however, a number of differences that give the protocol development process its own specific character. We discuss these differences in this chapter. First we give a short introduction to the main phases of the protocol development.
Hartmut König

10 Design

The protocol development process, as it was described in the previous chapter, contains several design phases: the service design, the protocol design, and the implementation design. Although the design phases comprise in detail many important and creative design decisions, relatively little attention has been paid to the design issue in the literature. Many publications use the word design in their headlines, but they refer more to the specification and the validation phase rather than to the design process itself. Nowadays protocols are still prevailingly developed empirically using more or less heuristic design methods. In contrast to the other phases of the development process, no established methods or techniques exist for protocol design. Therefore, we restrict ourselves in this chapter to a brief overview of interesting approaches related to systematic protocol design. Since the design process is closely related to the development of the (formal) protocol specification to document design decisions, we also discuss some issues concerning specification development in this chapter.
Hartmut König

11 Verification

The protocol verification phase has the task to prove the logical correctness and operation of the protocol design as it is documented in the service and protocol specification. Its goal is to ensure prior to coding that all the specified design requirements are worked out accurately and of course to detect design errors. The protocol design is, strictly speaking, not finalized and the specification not completed, as long as its correctness has not been proven formally. Since the protocol specification forms the basis for various protocol implementations in different execution environments, great importance is attached to the protocol verification to ensure the functional feasibility of the protocol. This is the reason why protocol verification has been established as an independent stage in the protocol development process (cp. Chapter 9). The protocol verification phase, like protocol specification and protocol testing, is one of the most intensively explored stages of the protocol development process. Many approaches have been proposed and investigated. Some of them have contributed successfully to the detection of design errors in real-life protocols [West 89], [Holz 91], [Lai 98], [Gord 00]. In this chapter we give an overview of the most important methods of protocol verification and their fields of application.
Hartmut König

12 Performance evaluation

We are now approaching the implementation phase. The implementation begins with an implementation design that will be considered in detail in Chapter 13. During implementation design it may be useful to assess the expected performance behaviour of the designed protocol in the target execution environment. Implementers often require quantitative measures like throughput or response time to optimize their implementation and to reason about implementation alternatives.
Hartmut König

13 Implementation

After verifying the protocol design and possibly evaluating its expected performance the protocol can be implemented in a concrete execution environment. Although at first glance it may not seem so, the implementation is one of the most expensive stages of the protocol development process. It requires a multitude of decisions which have a considerable influence on the efficiency and correctness of the final protocol realization. The implementation stage receives anyhow less attention in Protocol Engineering research compared to the other phases of the protocol development process which is expressed in the small number of publications on this subject. One of the reasons is that implementation experiences are rarely generalized and published because of their strong system relation and the subjective character of implementations. In addition, the implementation phase provides few starting points for formalizations. Implementation in the context of formal description techniques means primarily prototyping, i.e., the execution of specifications on a computer. It primarily serves the validation of the protocol procedures during design. FDT compilers usually support this possibility. The efficiency of the generated code plays a minor role in this form of implementation.
Hartmut König

14 Testing

The protocol test has the task to check whether the implemented protocol works correctly and is in compliance with the specification. In contrast to verification, which tries to prove the correctness, accuracy, and consistency of the protocol design, i.e., of its specification, testing focuses on implementations. Protocol verification and testing are therefore complementary methods. While verification is based on formal proofs, protocol testing validates physically existent, executable implementation by experiments. A test always relates to a dedicated implementation. It cannot make statements on other implementations derived from the same specification. The well-known statements on software testing also apply to protocol testing, such as that the goal of testing is to detect errors in the implementation or a test can only confirm the presence of errors but not their absence. Consequently, the protocol test cannot guarantee the correctness of an implemented protocol; it can only increase trust in the functionality and reliability of the implemented protocol.
Hartmut König

15 Outlook

The goal of this book was to give an introduction to the field of Protocol Engineering. Starting from the basic principles of communication protocols we presented various methods and techniques used for the description, implementation, and validation of communication protocols. Throughout the book we tried to find a balance between the theoretical and the practical aspects of protocol development, pointing out at the same time the possibilities and the limitations of the various approaches developed. Protocol Engineering was one of the hottest topics in the upswing of computer network technology. Meanwhile excitement has quieted down around Protocol Engineering. At the end of this book we want to discuss the reasons for this and give some prospects on future developments.
Hartmut König


Weitere Informationen

Premium Partner

BranchenIndex Online

Die B2B-Firmensuche für Industrie und Wirtschaft: Kostenfrei in Firmenprofilen nach Lieferanten, Herstellern, Dienstleistern und Händlern recherchieren.



Best Practices für die Mitarbeiter-Partizipation in der Produktentwicklung

Unternehmen haben das Innovationspotenzial der eigenen Mitarbeiter auch außerhalb der F&E-Abteilung erkannt. Viele Initiativen zur Partizipation scheitern in der Praxis jedoch häufig. Lesen Sie hier  - basierend auf einer qualitativ-explorativen Expertenstudie - mehr über die wesentlichen Problemfelder der mitarbeiterzentrierten Produktentwicklung und profitieren Sie von konkreten Handlungsempfehlungen aus der Praxis.
Jetzt gratis downloaden!