0%

Book Description

This book gives a practical approach to modeling and analyzing communication protocols using UML 2. Network protocols are always presented with a point of view focusing on partial mechanisms and starting models. This book aims at giving the basis needed for anybody to model and validate their own protocols. It follows a practical approach and gives many examples for the description and analysis of well known basic network mechanisms for protocols.

The book firstly shows how to describe and validate the main protocol issues (such as synchronization problems, client-server interactions, layer organization and behavior, etc.) in an easy and understandable way. To do so, the book considers and presents the main traditional network examples (e.g. unidirectional flows, full-duplex com-munication, error recovering, alternating bit). Finally, it presents the outputs resulting from a few simulations of these UML models.

Other books usually only focus either on teaching UML or on analyzing network protocols, however this book will allow readers to model network protocols using a new perspective and integrating these two views, so facilitating their comprehension and development.

Any university student studying in the field of computing science, or those working in telecommunications, embedded systems or networking will find this book a very useful addition.

Table of Contents

  1. Cover
  2. Title Page
  3. Copyright
  4. Preface
  5. Chapter 1: Why Use UML to Model Network Protocols?
    1. 1.1. Modeling network protocols
      1. 1.1.1. The complexity of communication protocols
      2. 1.1.2. Traditional modeling
        1. 1.1.2.1. Basic models and formal description techniques
        2. 1.1.2.2. Automata and state machine models
          1. 1.1.2.2.1. Models of tasks and processes
          2. 1.1.2.2.2. A few simple models
        3. 1.1.2.3. Petri Net models
        4. 1.1.2.4. Formal and semi-formal languages
        5. 1.1.2.5. Towards a new modeling language
      3. 1.1.3. Traditional validation
      4. 1.1.4. Need for a unified language for description, validation and simulation
    2. 1.2. UML as a common language
      1. 1.2.1. Overview
      2. 1.2.2. The beginning
      3. 1.2.3. Brief review
        1. 1.2.3.1. Class diagram
        2. 1.2.3.2. Package diagram
        3. 1.2.3.3. Object diagram
        4. 1.2.3.4. Component diagram
        5. 1.2.3.5. Composite structure diagram
        6. 1.2.3.6. Deployment diagram
        7. 1.2.3.7. Sequence diagram
        8. 1.2.3.8. Profile diagram
        9. 1.2.3.9. Activity diagram
        10. 1.2.3.10. Communication diagram
        11. 1.2.3.11. Interaction overview diagram
        12. 1.2.3.12. Timing diagram
        13. 1.2.3.13. Use case diagram
        14. 1.2.3.14. State machine diagram
      4. 1.2.4. UML for network protocols
      5. 1.2.5. Some general UML tools
    3. 1.3. Chapter summary
    4. 1.4. Bibliography
  6. Chapter 2: Simple Transmission
    1. 2.1. Introduction
    2. 2.2. Echo
      1. 2.2.1. Requirement specification
      2. 2.2.2. Analysis
        1. 2.2.2.1. Sequence diagram
        2. 2.2.2.2. Concerned classes
        3. 2.2.2.3. Signals list definition
      3. 2.2.3. Architecture design
      4. 2.2.4. Detailed design: class behavior
        1. 2.2.4.1. Client class
        2. 2.2.4.2. Server class
      5. 2.2.5. Echo: validation and simulation
        1. 2.2.5.1. Simulating the model
        2. 2.2.5.2. Model validation
    3. 2.3. Unidirectional: simple data sending
      1. 2.3.1. Requirement specification
      2. 2.3.2. Analysis
        1. 2.3.2.1. Sequence diagram
        2. 2.3.2.2. Signals list definition
      3. 2.3.3. Architecture design
      4. 2.3.4. Detailed design
        1. 2.3.4.1. First variation: protocol notation (transition oriented)
        2. 2.3.4.2. Second variation: behavior notation (state oriented)
      5. 2.3.5. Validation and simulation
        1. 2.3.5.1. Simulating the model
        2. 2.3.5.2. Model validation
    4. 2.4. Full duplex: simple data sending
      1. 2.4.1. Specification
      2. 2.4.2. Analysis
        1. 2.4.2.1. Sequence diagram
        2. 2.4.2.2. Concerned classes
      3. 2.4.3. Architecture design
      4. 2.4.4. Validation and simulation
        1. 2.4.4.1. Simulating the model
        2. 2.4.4.2. Model validation
      5. 2.4.5. Different ways of doing the same thing
        1. 2.4.5.1. A single machine
        2. 2.4.5.2. Interruption
        3. 2.4.5.3. Composite states with concurrent regions
        4. 2.4.5.4. Parallel threads
    5. 2.5. Chapter summary
    6. 2.6. Bibliography
  7. Chapter 3: Simple Chat Application
    1. 3.1. Introduction
    2. 3.2. Requirements
    3. 3.3. Analysis
      1. 3.3.1. Sequence diagrams
        1. 3.3.1.1. Splitting the system up
        2. 3.3.1.2. Open session
        3. 3.3.1.3. Timeout
        4. 3.3.1.4. Refuse
        5. 3.3.1.5. Accept
        6. 3.3.1.6. Close
        7. 3.3.1.7. Send data
      2. 3.3.2. Concerned classes
      3. 3.3.3. Signal list definition
    4. 3.4. Architecture design
    5. 3.5. Detailed design
      1. 3.5.1. Open session
      2. 3.5.2. Timeout
      3. 3.5.3. Refusing the session
      4. 3.5.4. Accepting session
      5. 3.5.5. Closing session
      6. 3.5.6. Sending data
        1. 3.5.6.1. Case 1: Successful delivery
        2. 3.5.6.2. Case 2: the receiving user closes the session
        3. 3.5.6.3. Case 3: The whole session is closed
    6. 3.6. Simple chat simulation
      1. 3.6.1. Intuitive test
      2. 3.6.2. Initial tests
        1. 3.6.2.1. Refuse session
        2. 3.6.2.2. Accept session
        3. 3.6.2.3. Close session
        4. 3.6.2.4. Send data
        5. 3.6.2.5. Coverage statistics
      3. 3.6.3. Extended tests (fault tolerance)
        1. 3.6.3.1. Proposed scenarios
        2. 3.6.3.2. Send when session is closed
        3. 3.6.3.3. A-Sends while B-Closes
        4. 3.6.3.4. Close (with session closed)
        5. 3.6.3.5. Open (when session is already opened)
        6. 3.6.3.6. A-Opens – B-Opens
        7. 3.6.3.7. A-Closes – B-Closes
        8. 3.6.3.8. A-sends – B-sends
    7. 3.7. Chapter summary
    8. 3.8. Bibliography
  8. Chapter 4: Non-reliable Transmission Mediums
    1. 4.1. Introduction
    2. 4.2. Requirements
    3. 4.3. Analysis
      1. 4.3.1. Sequence diagrams
        1. 4.3.1.1. Configure
        2. 4.3.1.2. Send
      2. 4.3.2. Concerned classes
        1. 4.3.2.1. Accessory classes
        2. 4.3.2.2. Class diagram
      3. 4.3.3. Signal list definition
    4. 4.4. Architecture design
      1. 4.4.1. Detailing the sequence diagram
    5. 4.5. Detailed design
      1. 4.5.1. Random class
        1. 4.5.1.1. ini operation
        2. 4.5.1.2. rand operation
        3. 4.5.1.3. randAB operation
      2. 4.5.2. Losing class
        1. 4.5.2.1. setLossesRate operation
        2. 4.5.2.2. Initialize operation
      3. 4.5.3. Delaying class
        1. 4.5.3.1. setMaxDelay operation
        2. 4.5.3.2. Initialize operation
      4. 4.5.4. Non-reliable medium class
        1. 4.5.4.1. Initialize operation
    6. 4.6. Validation
      1. 4.6.1. Configure
      2. 4.6.2. Send
        1. 4.6.2.1. Neither losses nor delay
        2. 4.6.2.2. Losing everything
        3. 4.6.2.3. No losses and high delay
        4. 4.6.2.4. Losses and delay
      3. 4.6.3. Extending the model
        1. 4.6.3.1. Adding a payload
        2. 4.6.3.2. Consecutive data packets
    7. 4.7. Chapter summary
    8. 4.8. Bibliography
  9. Chapter 5: Simple Transport Protocol
    1. 5.1. Introduction
    2. 5.2. Requirements
    3. 5.3. The Alternating Bit Protocol
      1. 5.3.1. Basic communication features with Petri Nets
      2. 5.3.2. The algorithm
    4. 5.4. Analysis
      1. 5.4.1. First step: The Alternating Bit Protocol
      2. 5.4.2. Second step: Linking the application
      3. 5.4.3. Third step: Linking the medium
      4. 5.4.4. Concerned classes
      5. 5.4.5. Signal list definition
    5. 5.5. Architecture design
      1. 5.5.1. Simple transport protocol
      2. 5.5.2. Simulation model
    6. 5.6. Detailed design
      1. 5.6.1. ADU data type
      2. 5.6.2. PDU data type
      3. 5.6.3. ADU_Manager
      4. 5.6.4. PDU_Manager
      5. 5.6.5. ABP_Sender
      6. 5.6.6. ABP_Receiver
    7. 5.7. Simulations
      1. 5.7.1. Initialization and configuration
      2. 5.7.2. No losses
        1. 5.7.2.1. Open session request without answer
        2. 5.7.2.2. Open session request with answer
        3. 5.7.2.3. Send data
      3. 5.7.3. Losses
    8. 5.8. Further considerations
      1. 5.8.1. Acknowledgements at different levels
      2. 5.8.2. Delayed acknowledgements
    9. 5.9. Chapter summary
    10. 5.10. Bibliography
  10. Appendix: Detailed Diagrams of the Simple Transport Protocol
    1. A.1. State machines for the Application Data Unit Manager (Simple Transport Protocol)
    2. A.2. Detailed simulations of the Simple Transport Protocol
      1. A.2.1. Initializing and configuring the medium
      2. A.2.2. No losses
        1. A.2.2.1. Open session request without answer
        2. A.2.2.2. Open session request with answer
        3. A.2.2.3. Send data
      3. A.2.3. Losses
      4. A.2.4. Losses and delay
  11. Index
18.217.220.114