Stream Control Transmission Protocol (SCTP)

Randall R. Stewart, Qiaobing Xie

  • 出版商: Addison Wesley
  • 出版日期: 2001-10-23
  • 售價: $1,630
  • 貴賓價: 9.5$1,549
  • 語言: 英文
  • 頁數: 384
  • 裝訂: Paperback
  • ISBN: 0201721864
  • ISBN-13: 9780201721867
  • 已絕版




"This book...offers inside insights (by two of the SCTP designers) into the design of the protocol and discusses why the protocol operates as it does. This insight takes much of the 'black magic' out of SCTP and makes the protocol more accessible."
--From the Foreword by Mark Allman

Named one of the Top 10 Hottest Technologies of 2001 by Telecommunications Magazine, Stream Control Transmission Protocol (SCTP) is considered by many to be the TCP of the future. Originally designed for Internet telephony, SCTP has also proven itself a superb general purpose transport protocol for IP network data communications. More robust and secure than TCP, SCTP is the technology of choice for building next generation commercial grade infrastructures for telecommunications and e-commerce. Anyone involved with the technical aspects of Internet communications should have a working knowledge of this new transmission protocol, which is rapidly being adopted by standardization bodies and networking organizations.

Written by the creators of SCTP, Stream Control Transmission Protocol (SCTP): A Reference Guide is a comprehensive, practical, guide to SCTP technology. Examining the protocol in depth, the book provides useful perspective on design rationale and highlights SCTP's improvements over TCP in the areas of security and reliability. The book also demonstrates how to take full advantage of SCTP to make IP-based communications more reliable and robust.

Topics covered include:

  • An item-by-item comparison between the functions of SCTP and TCP/UDP
  • SCTP packet formats
  • Setup and closing of an association
  • User data transfer
  • Congestion control and avoidance, covering the SCTP Congestion Control Algorithm
  • Failure detection and recovery, covering the interaction with multihoming and route arrangements
  • "Out-of-the-blue" SCTP packets and verification tag rules
  • IANA and future extension of SCTP
  • A preview of the proposed SCTP Socket API extension
  • Use of Streams in SCTP, featuring file transfer, call control, and Web browser applications

Numerous examples and diagrams throughout the book clarify important concepts and techniques. The final chapter presents a user space implementation of SCTP, and the accompanying CD-ROM contains the open source code for this implementation.

An important complement to the official IETF standards specification, this book is required reading for all Internet programmers, developers, managers, and implementors of SCTP.

Table of Contents

1. Introduction and Overview.

IP Networking Basics.
How Messages are Delivered in an IP Network.
IP Protocols.
IP Multi-homing.

What Is SCTP?
Where Does SCTP Fit in the IP Architecture?

Motivation for Developing SCTP.
TCP Limitations.
UDP Limitations.
SCTP Enhancements Over TCP and UDP.

A Short History of SCTP Development.
Early Works Before IETF and MDTP.
IETF Refinements.

Major General SCTP Issues Debated in IETF.
Do We Really Need a New Transport Protocol?
Over UDP vs. Over IP.

Organization of This Book.

2. SCTP Endpoint and Association.

SCTP Transport Address.
SCTP Endpoint.
Multi-homed SCTP Endpoint.

SCTP Association.
Operation of an SCTP Association.
Functional View of an Association.
Functional Responsibilities of an SCTP Endpoint.
Operation States of an Association.

IETF Debate And Issues.

3. Format of SCTP Messages.

Basic Layout—the Bits on the Wire.
The SCTP Common Header.
Elements in a Chunk.
Defined Chunk Types and Extensibility.
General Rules When Dealing with Chunks.
Chunk Parameters.
Other Considerations.

Basic Chunk Descriptions.
The INIT Chunk.
The INIT-ACK Chunk.
The DATA Chunk.
The SACK Chunk.
The HEARTBEAT Chunk 98.
The SHUTDOWN chunk.
The ERROR Chunk.
The Error Cause Parameters.
The ABORT Chunk.

IETF Debate And Issue.

4. Setup of an Association.

The INIT Chunk.
Formulating the Chunk.
INIT Parameters.
Timer and Retransmission For INIT.

The INIT-ACK Response.
Formulating the Response.
INIT-ACK Parameters.
Preventing Resource Attacks.

Formulating the Chunk.
Bundling Data with the COOKIE-ECHO.
Timer and Retransmission For COOKIE-ECHO.

Validating and Unpacking the Cookie.
Formulating The COOKIE-ACK.
Bundling DATA and SACK with COOKIE-ACK.

Address Usage When Starting An Association.
Chunk Rejections During an Association Setup.
When an INIT Is Unacceptable?
When is a Cookie Not Worth Eating?

Handle Unexpected Initialization Chunks.
Association Tie-Tags and their values.
Handle Overlapping Initialization Chunks.
Case Study #1: Initialization Collision.
Case Study #2: Peer Restart.

IETF Debate and Issues.

5. User Data Transfer.

User Message Transfer Overview.
How User Messages Are Sent.
How User Messages Are Received.
Summary on Data Transfer Overview.

Obey The Transmission Rules.
Congestion Window And Receiver Window.
Rules for Data Transmission.

Acknowledgment Rules.
Where to Send a SACK?
When to Send a SACK?
What to Report in a SACK?
Revoke an Acknowledgment by Receiver.
Process Received SACK by Data Sender.

Management of Retransmission Timer.
Determine Retransmission Time-out (RTO).
Retransmission Timer Rules.
Handle Retransmission Timer Expiration.

Multi-homed Data Sender and Receiver.
Selection of Primary Transport Address.
Transfer Data Between Multi-homed Endpoints.
Sending SACK on Duplicate Data.

Stream Identifier and Stream Sequence Number.
Ordered and Un-ordered Message Delivery.

Passing Payload Protocol Identifier.
Fragmentation and Bundling Of User Messages.
When to Fragment?
How to Fragment a User Message?
Reassembling Fragmented Message at Data Receiver.
User Message Bundling.

Adler-32 Checksum.
Generation of Adler-32 Checksum by Data Sender.
Validate Adler-32 Checksum by Data Receiver.

Error Handling.
Handle Data Chunk with Invalid Stream Identifier.
Handle Empty Data Chunk.
Handle Out-of-state Data.

IETF Debate and Issues.

6. Congestion Control and Avoidance.

The Cause of Network Congestion Collapse.
Basic Concept of Congestion Control.
SCTP Congestion Control Algorithm.
How Does Your cwnd Grow?
How Does Your cwnd Shrink?

Interesting Details of the Algorithms.
Path MTU Discovery.
A Refresher on How PMTU Works.
PMTU Discoveryin SCTP.

Explicit Congestion Notification.
IETF Debate and Issues.

7. Failure Detection and Recovery.

What Types of Failure SCTP Detects.
Destination Address Unreachable.
Peer Endpoint Unreachable.

How To Detect an Unreachable Address.
Use HEARTBEAT to Monitor Reachability.
Address Unreachability Detection Algorithm.
More on Using Heartbeat.
Handle Unreachable Primary Destination Address.

How To Detect an Unreachable Peer.
Association Entering Dormant State.

Fault Resilience Communication and Routing Configuration.
Maximize Path Diversity.
Asymmetric Multi-homing Configuration.
Effects of Source Address Selection.

IETF Debate and Issues.

8. Auxiliary SCTP Packet Handling Functions.

Handle Out-of-the-blue SCTP Packets.
SCTP Packet Verification Tag Rules.
Basic Verification Tag Rules.
Special Verification Tag Rules.

IETF Debate and Discussion.

9. Close of an Association.

The Graceful Shutdown.
Receiving SHUTDOWN.
Race Condition And Lost Message.

The Abortive Shutdown.
Abort Usage.
Sending ABORT.
Receiving ABORT.

IETF Debate and Issues.

10. IANA And Future Extension Of SCTP.

SCTP Port Assignment.
IETF Chunk Extensions.
IETF Parameter Extensions.
IETF Extensions to the Error Causes.
Payload Protocol Identifier.

11. A Socket API For SCTP.

A Quick Review of the TCP SOCKET API.
The Application Server Side.
The Application Client Side.

Applying the Typical TCP API to SCTP.
The Un-typical SCTP API.
A View of a Client.
The Receiving Side View.

Common API Mechanisms for Both Models.
Using the sendmsg and recvmsg Calls with SCTP.
Notification Information.


12. Comparing SCTP to TCP.

The Similarities Between SCTP and TCP.
Reliability and Ordering.
Congestion Control.
Closing Down.

The Differences between SCTP and TCP.
Differences at Start-up.
Head of Line Blocking.
Message Oriented Boundaries.
Un-ordered Delivery.
Selective Acknowledgment.
A Closing Difference.


13. Using Streams In SCTP.

A File Transfer Application.
A Call Control Application.
A Web Browser.

14. A User Space Implementation Of SCTP.

The Big Picture.
Data Structures.
Events and the API.
Association Setup.
When an Upper Layer Issues an Associate Primitive.
When a Peer Sends the SCTP Endpoint an INIT.

Data Transfer.
SACK Processing.
Inbound DATA Processing
Finishing Off By Sending.

Congestion Control, PMTU, And RTO.
Congestion Control.
PMTU Discovery.
RTO Calculation.

Fault Management.
Tag and Out-of-the-blue Handling.
Association Close-down.
At the Upper Layers Request.
Reception of a SHUTDOWN.


Glossary and Abbreviations.