Stream Control Transmission Protocol (SCTP)
暫譯: 串流控制傳輸協定 (SCTP)

Randall R. Stewart, Qiaobing Xie

  • 出版商: Addison Wesley
  • 出版日期: 2001-10-23
  • 售價: $2,030
  • 貴賓價: 9.5$1,929
  • 語言: 英文
  • 頁數: 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

Preface.
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.
Summary.
Questions.


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.
Summary.
Questions.


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 COOKIE-ECHO Chunk.
The COOKIE-ACK Chunk.
The DATA Chunk.
The SACK Chunk.
The HEARTBEAT Chunk 98.
The HEARTBEAT-ACK Chunk.
The SHUTDOWN chunk.
The SHUTDOWN-ACK Chunk.
The SHUTDOWN-COMPLETE Chunk.
The ERROR Chunk.
The Error Cause Parameters.
The ABORT Chunk.

IETF Debate And Issue.
Summary.
Questions.


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.

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

The COOKIE-ACK Chunk.
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.
A lost COOKIE-ACK.

IETF Debate and Issues.
Summary.
Questions.


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.
Summary.
Questions.


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.
Summary.
Questions.


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.
Summary.
Questions.


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.
Summary.
Questions.


9. Close of an Association.

The Graceful Shutdown.
Sending SHUTDOWN.
Receiving SHUTDOWN.
Sending SHUTDOWN-COMPLETE.
Race Condition And Lost Message.

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

IETF Debate and Issues.
Summary.
Questions.


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.
Summary.


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.

Summary.
Questions.


12. Comparing SCTP to TCP.

The Similarities Between SCTP and TCP.
Start-up.
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.
Multi-homing.
A Closing Difference.

Summary.
Questions.


13. Using Streams In SCTP.

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


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.

Summary.


Glossary and Abbreviations.
References.

商品描述(中文翻譯)

這本書...提供了由兩位 SCTP 設計者的內部見解,深入探討了協議的設計,並討論了為什麼該協議以這種方式運作。這些見解消除了 SCTP 的許多「黑魔法」,使得該協議更易於理解。
--摘自 Mark Allman 的前言

被《Telecommunications Magazine》評選為 2001 年十大熱門技術之一的流控制傳輸協議(Stream Control Transmission Protocol, SCTP)被許多人認為是未來的 TCP。SCTP 最初是為了網際網路電話而設計的,但它也證明自己是一種出色的通用傳輸協議,適用於 IP 網路數據通信。SCTP 比 TCP 更加穩健和安全,是構建下一代商業級電信和電子商務基礎設施的首選技術。任何涉及網際網路通信技術方面的人都應該對這種新傳輸協議有一定的了解,因為它正迅速被標準化機構和網路組織所採用。

由 SCTP 的創建者撰寫的《流控制傳輸協議(SCTP):參考指南》是一本全面且實用的 SCTP 技術指南。該書深入探討了協議,提供了設計原則的有用視角,並突顯了 SCTP 在安全性和可靠性方面相對於 TCP 的改進。該書還展示了如何充分利用 SCTP,使基於 IP 的通信更加可靠和穩健。

涵蓋的主題包括:
- SCTP 與 TCP/UDP 功能的逐項比較
- SCTP 封包格式
- 關聯的建立與關閉
- 用戶數據傳輸
- 擁塞控制與避免,涵蓋 SCTP 擁塞控制算法
- 故障檢測與恢復,涵蓋與多重主機和路由安排的互動
- 「突如其來」的 SCTP 封包和驗證標籤規則
- IANA 和 SCTP 的未來擴展
- 提議的 SCTP Socket API 擴展的預覽
- 在 SCTP 中使用流,特別是文件傳輸、呼叫控制和網頁瀏覽器應用

書中有大量的示例和圖表,幫助澄清重要概念和技術。最後一章介紹了 SCTP 的用戶空間實現,隨書附帶的 CD-ROM 包含該實現的開源代碼。

這本書是對官方 IETF 標準規範的重要補充,所有網際網路程序員、開發者、經理和 SCTP 實施者都必須閱讀。

目錄
前言。
1. 介紹與概述。
IP 網路基礎。
消息在 IP 網路中的傳遞方式。
IP 協議。
IP 多重主機。
SCTP 是什麼?
SCTP 在 IP 架構中的位置。
開發 SCTP 的動機。
TCP 的限制。
UDP 的限制。
SCTP 相對於 TCP 和 UDP 的增強。
SCTP 開發的簡短歷史。
IETF 和 MDTP 之前的早期工作。
IETF 的改進。
在 IETF 中辯論的主要 SCTP 一般問題。
我們真的需要一個新的傳輸協議嗎?
在 UDP 上 vs. 在 IP 上。
本書的組織。
摘要。
問題。

2. SCTP 端點和關聯。
SCTP 傳輸地址。
SCTP 端點。
多重主機的 SCTP 端點。
SCTP 關聯。
SCTP 關聯的操作。
關聯的功能視圖。
SCTP 端點的功能責任。
關聯的操作狀態。
IETF 辯論和問題。
摘要。
問題。

3. SCTP 消息的格式。
基本佈局—線上的位元。
SCTP 通用標頭。
一個 Chunk 中的元素。
定義的 Chunk 類型和可擴展性。
處理 Chunk 時的一般規則。
Chunk 參數。
其他考量。
基本 Chunk 描述。
INIT Chunk。
INIT-ACK Chunk。
COOKIE-ECHO Chunk。
COOKIE-ACK Chunk。
DATA Chunk。
SACK Chunk。
HEARTBEAT Chunk。
HEARTBEAT-ACK Chunk。
SHUTDOWN Chunk。
SHUTDOWN-ACK Chunk。
SHUTDOWN-COMPLETE Chunk。
ERROR Chunk。
錯誤原因參數。
ABORT Chunk。
IETF 辯論和問題。
摘要。
問題。

4. 關聯的建立。
INIT Chunk。
制定 Chunk。
INIT 參數。
INIT 的計時器和重傳。
INIT-ACK 回應。
制定回應。
INIT-ACK 參數。
防止資源攻擊。
COOKIE-ECHO Chunk。
制定 Chunk。
將數據與 COOKIE-ECHO 打包。
COOKIE-ECHO 的計時器和重傳。
COOKIE-ACK Chunk。
驗證和解包 Cookie。
制定 COOKIE-ACK。
將 DATA 和 SACK 與 COOKIE-ACK 打包。
啟動關聯時的地址使用。
關聯建立過程中的 Chunk 拒絕。
何時 INIT 是不可接受的?
何時 Cookie 不值得吃?
處理意外的初始化 Chunk。
關聯的 Tie-Tags 及其值。
處理重疊的初始化 Chunk。
案例研究 #1:初始化衝突。
案例研究 #2:對等重啟。
丟失的 COOKIE-ACK。
IETF 辯論和問題。
摘要。
問題。

5. 用戶數據傳輸。
用戶消息傳輸概述。
用戶消息的發送方式。
用戶消息的接收方式。
數據傳輸概述的摘要。
遵守傳輸規則。
擁塞窗口和接收窗口。
數據傳輸的規則。
確認規則。
SACK 的發送地點?
何時發送 SACK?
在 SACK 中報告什麼?
接收方撤銷確認。
數據發送方處理接收到的 SACK。
重傳計時器的管理。
確定重傳超時(RTO)。
重傳計時器規則。
處理重傳計時器過期。
多重主機的數據發送方和接收方。
選擇主要傳輸地址。
在多重主機端點之間傳輸數據。
在重複數據上發送 SACK。
流標識符和流序列號。
有序和無序消息交付。
傳遞有效負載協議標識符。
用戶消息的分段和打包。
何時分段?
如何分段用戶消息?
在數據接收方重新組裝分段消息。
用戶消息打包。
Adler-32 校驗和。
數據發送方生成 Adler-32 校驗和。
數據接收方驗證 Adler-32 校驗和。
錯誤處理。
處理具有無效流標識符的數據 Chunk。
處理空數據 Chunk。
處理不在狀態的數據。
IETF 辯論和問題。
摘要。
問題。

6. 擁塞控制與避免。
網路擁塞崩潰的原因。
擁塞控制的基本概念。
SCTP 擁塞控制算法。
你的 cwnd 如何增長?
你的 cwnd 如何縮小?
算法的有趣細節。
路徑 MTU 發現。
PMTU 如何運作的回顧。
SCTP 中的 PMTU 發現。
明確擁塞通知。
IETF 辯論和問題。
摘要。
問題。

7. 故障檢測與恢復。
SCTP 檢測的故障類型。
目的地址不可達。
對等端點不可達。
如何檢測不可達的地址。
使用 HEARTBEAT 監控可達性。
地址不可達檢測算法。
更多使用心跳的資訊。
處理不可達的主要目的地址。
如何檢測不可達的對等方。
關聯進入休眠狀態。
故障韌性通信和路由配置。
最大化路徑多樣性。
非對稱多重主機配置。
源地址選擇的影響。
IETF 辯論和問題。
摘要。
問題。

8. 附加 SCTP 封包處理功能。
處理突如其來的 SCTP 封包。
SCTP 封包驗證標籤規則。
基本驗證標籤規則。
特殊驗證標籤規則。
IETF 辯論和討論。
摘要。
問題。

9. 關聯的關閉。
優雅的關閉。
發送 SHUTDOWN。
接收 SHUTDOWN。
發送 SHUTDOWN-COMPLETE。
競爭條件和丟失的消息。
強制關閉。
中止使用。
發送 ABORT。
接收 ABORT。
IETF 辯論和問題。
摘要。
問題。

10. IANA 和 SCTP 的未來擴展。
SCTP 端口分配。
IETF Chunk 擴展。
IETF 參數擴展。
IETF 對錯誤原因的擴展。
有效負載協議標識符。
摘要。

11. SCTP 的 Socket API。
TCP SOCKET API 的快速回顧。
應用伺服器端。
應用客戶端。
將典型的 TCP API 應用於 SCTP。
非典型的 SCTP API。
客戶端的視圖。
接收端的視圖。
兩種模型的共同 API 機制。
使用 sendmsg 和 recvmsg 調用 SCTP。
通知資訊。
摘要。
問題。

12. 將 SCTP 與 TCP 進行比較。
SCTP 和 TCP 之間的相似性。
啟動。
可靠性和排序。
擁塞控制。
關閉。
SCTP 和 TCP 之間的差異。
啟動時的差異。
行首阻塞。
面向消息的邊界。
無序交付。
選擇性確認。
多重主機。