rfc2960.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,498 行 · 第 1/5 页

TXT
1,498
字号






Network Working Group                                         R. Stewart
Request for Comments: 2960                                        Q. Xie
Category: Standards Track                                       Motorola
                                                            K. Morneault
                                                                C. Sharp
                                                                   Cisco
                                                         H. Schwarzbauer
                                                                 Siemens
                                                               T. Taylor
                                                         Nortel Networks
                                                               I. Rytina
                                                                Ericsson
                                                                M. Kalla
                                                               Telcordia
                                                                L. Zhang
                                                                    UCLA
                                                               V. Paxson
                                                                   ACIRI
                                                            October 2000


                  Stream Control Transmission Protocol

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2000).  All Rights Reserved.

Abstract

   This document describes the Stream Control Transmission Protocol
   (SCTP).  SCTP is designed to transport PSTN signaling messages over
   IP networks, but is capable of broader applications.

   SCTP is a reliable transport protocol operating on top of a
   connectionless packet network such as IP.  It offers the following
   services to its users:

      -- acknowledged error-free non-duplicated transfer of user data,
      -- data fragmentation to conform to discovered path MTU size,




Stewart, et al.             Standards Track                     [Page 1]

RFC 2960          Stream Control Transmission Protocol      October 2000


      -- sequenced delivery of user messages within multiple streams,
         with an option for order-of-arrival delivery of individual user
         messages,
      -- optional bundling of multiple user messages into a single SCTP
         packet, and
      -- network-level fault tolerance through supporting of multi-
         homing at either or both ends of an association.

   The design of SCTP includes appropriate congestion avoidance behavior
   and resistance to flooding and masquerade attacks.









































Stewart, et al.             Standards Track                     [Page 2]

RFC 2960          Stream Control Transmission Protocol      October 2000


Table of Contents

   1.  Introduction..................................................  5
     1.1 Motivation..................................................  6
     1.2 Architectural View of SCTP..................................  6
     1.3 Functional View of SCTP.....................................  7
       1.3.1 Association Startup and Takedown........................  8
       1.3.2 Sequenced Delivery within Streams.......................  9
       1.3.3 User Data Fragmentation.................................  9
       1.3.4 Acknowledgement and Congestion Avoidance................  9
       1.3.5 Chunk Bundling ......................................... 10
       1.3.6 Packet Validation....................................... 10
       1.3.7 Path Management......................................... 11
     1.4 Key Terms................................................... 11
     1.5 Abbreviations............................................... 15
     1.6 Serial Number Arithmetic.................................... 15
   2. Conventions.................................................... 16
   3.  SCTP packet Format............................................ 16
     3.1 SCTP Common Header Field Descriptions....................... 17
     3.2 Chunk Field Descriptions.................................... 18
       3.2.1 Optional/Variable-length Parameter Format............... 20
     3.3 SCTP Chunk Definitions...................................... 21
       3.3.1 Payload Data (DATA)..................................... 22
       3.3.2 Initiation (INIT)....................................... 24
         3.3.2.1 Optional or Variable Length Parameters.............. 26
       3.3.3 Initiation Acknowledgement (INIT ACK)................... 30
         3.3.3.1 Optional or Variable Length Parameters.............. 33
       3.3.4 Selective Acknowledgement (SACK)........................ 33
       3.3.5 Heartbeat Request (HEARTBEAT)........................... 37
       3.3.6 Heartbeat Acknowledgement (HEARTBEAT ACK)............... 38
       3.3.7 Abort Association (ABORT)............................... 39
       3.3.8 Shutdown Association (SHUTDOWN)......................... 40
       3.3.9 Shutdown Acknowledgement (SHUTDOWN ACK)................. 40
       3.3.10 Operation Error (ERROR)................................ 41
         3.3.10.1 Invalid Stream Identifier.......................... 42
         3.3.10.2 Missing Mandatory Parameter........................ 43
         3.3.10.3 Stale Cookie Error................................. 43
         3.3.10.4 Out of Resource.................................... 44
         3.3.10.5 Unresolvable Address............................... 44
         3.3.10.6 Unrecognized Chunk Type............................ 44
         3.3.10.7 Invalid Mandatory Parameter........................ 45
         3.3.10.8 Unrecognized Parameters............................ 45
         3.3.10.9 No User Data....................................... 46
         3.3.10.10 Cookie Received While Shutting Down............... 46
       3.3.11 Cookie Echo (COOKIE ECHO).............................. 46
       3.3.12 Cookie Acknowledgement (COOKIE ACK).................... 47
       3.3.13 Shutdown Complete (SHUTDOWN COMPLETE).................. 48
   4. SCTP Association State Diagram................................. 48



Stewart, et al.             Standards Track                     [Page 3]

RFC 2960          Stream Control Transmission Protocol      October 2000


   5. Association Initialization..................................... 52
     5.1 Normal Establishment of an Association...................... 52
       5.1.1 Handle Stream Parameters................................ 54
       5.1.2 Handle Address Parameters............................... 54
       5.1.3 Generating State Cookie................................. 56
       5.1.4 State Cookie Processing................................. 57
       5.1.5 State Cookie Authentication............................. 57
       5.1.6 An Example of Normal Association Establishment.......... 58
     5.2 Handle Duplicate or unexpected INIT, INIT ACK, COOKIE ECHO,
         and COOKIE ACK.............................................. 60
       5.2.1 Handle Duplicate INIT in COOKIE-WAIT
             or COOKIE-ECHOED States................................. 60
       5.2.2 Unexpected INIT in States Other than CLOSED,
             COOKIE-ECHOED, COOKIE-WAIT and SHUTDOWN-ACK-SENT........ 61
       5.2.3 Unexpected INIT ACK..................................... 61
       5.2.4 Handle a COOKIE ECHO when a TCB exists.................. 62
         5.2.4.1 An Example of a Association Restart................. 64
       5.2.5 Handle Duplicate COOKIE ACK............................. 66
       5.2.6 Handle Stale COOKIE Error............................... 66
     5.3 Other Initialization Issues................................. 67
       5.3.1 Selection of Tag Value.................................. 67
   6. User Data Transfer............................................. 67
     6.1 Transmission of DATA Chunks................................. 69
     6.2 Acknowledgement on Reception of DATA Chunks................. 70
       6.2.1 Tracking Peer's Receive Buffer Space.................... 73
     6.3 Management Retransmission Timer............................. 75
       6.3.1 RTO Calculation......................................... 75
       6.3.2 Retransmission Timer Rules.............................. 76
       6.3.3 Handle T3-rtx Expiration................................ 77
     6.4 Multi-homed SCTP Endpoints.................................. 78
       6.4.1 Failover from Inactive Destination Address.............. 79
     6.5 Stream Identifier and Stream Sequence Number................ 80
     6.6 Ordered and Unordered Delivery.............................. 80
     6.7 Report Gaps in Received DATA TSNs........................... 81
     6.8 Adler-32 Checksum Calculation............................... 82
     6.9 Fragmentation............................................... 83
     6.10 Bundling .................................................. 84
   7. Congestion Control   .......................................... 85
     7.1 SCTP Differences from TCP Congestion Control................ 85
     7.2 SCTP Slow-Start and Congestion Avoidance.................... 87
       7.2.1 Slow-Start.............................................. 87
       7.2.2 Congestion Avoidance.................................... 89
       7.2.3 Congestion Control...................................... 89
       7.2.4 Fast Retransmit on Gap Reports.......................... 90
     7.3 Path MTU Discovery.......................................... 91
   8.  Fault Management.............................................. 92
     8.1 Endpoint Failure Detection.................................. 92
     8.2 Path Failure Detection...................................... 92



Stewart, et al.             Standards Track                     [Page 4]

RFC 2960          Stream Control Transmission Protocol      October 2000


     8.3 Path Heartbeat.............................................. 93
     8.4 Handle "Out of the blue" Packets............................ 95
     8.5 Verification Tag............................................ 96
       8.5.1 Exceptions in Verification Tag Rules.................... 97
   9. Termination of Association..................................... 98
     9.1 Abort of an Association..................................... 98
     9.2 Shutdown of an Association.................................. 98
   10. Interface with Upper Layer....................................101
     10.1 ULP-to-SCTP................................................101
     10.2 SCTP-to-ULP................................................111
   11. Security Considerations.......................................114
     11.1 Security Objectives........................................114
     11.2 SCTP Responses To Potential Threats........................115
       11.2.1 Countering Insider Attacks.............................115
       11.2.2 Protecting against Data Corruption in the Network......115
       11.2.3 Protecting Confidentiality.............................115
       11.2.4 Protecting against Blind Denial of Service Attacks.....116
         11.2.4.1 Flooding...........................................116
         11.2.4.2 Blind Masquerade...................................118
         11.2.4.3 Improper Monopolization of Services................118
     11.3 Protection against Fraud and Repudiation...................119
   12. Recommended Transmission Control Block (TCB) Parameters.......120
     12.1 Parameters necessary for the SCTP instance.................120
     12.2 Parameters necessary per association (i.e. the TCB)........120
     12.3 Per Transport Address Data.................................122
     12.4 General Parameters Needed..................................123
   13. IANA Considerations...........................................123
     13.1 IETF-defined Chunk Extension...............................123
     13.2 IETF-defined Chunk Parameter Extension.....................124
     13.3 IETF-defined Additional Error Causes.......................124
     13.4 Payload Protocol Identifiers...............................125
   14. Suggested SCTP Protocol Parameter Values......................125
   15. Acknowledgements..............................................126
   16. Authors' Addresses............................................126
   17. References....................................................128
   18. Bibliography..................................................129
   Appendix A .......................................................131
   Appendix B .......................................................132
   Full Copyright Statement .........................................134

1. Introduction

   This section explains the reasoning behind the development of the
   Stream Control Transmission Protocol (SCTP), the services it offers,
   and the basic concepts needed to understand the detailed description
   of the protocol.





Stewart, et al.             Standards Track                     [Page 5]

RFC 2960          Stream Control Transmission Protocol      October 2000


1.1 Motivation

   TCP [RFC793] has performed immense service as the primary means of
   reliable data transfer in IP networks.  However, an increasing number
   of recent applications have found TCP too limiting, and have
   incorporated their own reliable data transfer protocol on top of UDP
   [RFC768].  The limitations which users have wished to bypass include
   the following:

      -- TCP provides both reliable data transfer and strict order-of-
      transmission delivery of data.  Some applications need reliable
      transfer without sequence maintenance, while others would be
      satisfied with partial ordering of the data.  In both of these
      cases the head-of-line blocking offered by TCP causes unnecessary

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?