http://tools.ietf.org/html/rfc4960
Page 70まで
Network Working
Group R. Stewart, Ed.
Request for Comments: 4960 September 2007
Obsoletes: 2960, 3309
Category: Standards Track
Stream Control Transmission Protocol
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.
このドキュメントはインターネットコミュニティにインターネット標準の規定とプロトコルと改良のための提案と議論の要求をする。
標準化状態とプロトコル状態はSTD1の最新版を参照してください。
このメモの配布には制限がない。
Abstract
概要
This document
obsoletes RFC 2960 and RFC 3309. It describes the
Stream Control Transmission Protocol (SCTP). SCTP is designed to
transport Public Switched Telephone Network (PSTN) signaling messages
over IP networks, but is capable of broader applications.
このドキュメントはRFC2960とRFC3309を廃止する。
このドキュメントはStream Control Transmission Protocol(SCTP)を記述する。
SCTPはIPネットワーク上で公衆無線網(PSTN)の音声メッセージを送信するために設計されているが、 より広い応用が可能。
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:
SCTPはIP等のコネクションレスパケット網上で動作する信頼性の高いプロトコルである。
SCTPはユーザーに下記のサービスを提供する。
-- acknowledged error-free non-duplicated transfer of user data,
-- ユーザデータのエラー無し、重複無しの送信
-- data
fragmentation to conform to discovered path MTU size,
-- Path MTUサイズに適合するためのデータの分割(フラグメント)
-- 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
-- 単一SCTPパケットに複数のユーザメッセージを任意にバンドルする
--
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.
SCTPの設計は輻輳制御に適切な振る舞いと、フラッディング、マスカレード攻撃への耐性が含まれる。
Stewart Standards Track [Page 1]
RFC 4960 Stream Control Transmission Protocol September 2007
Table of
Contents
1. Introduction
....................................................5
1.導入
1.1. Motivation .................................................5
1.1. モチベーション
1.2. Architectural View of SCTP .................................6
1.2. SCTPのアーキテクチャ観点
1.3. Key Terms ..................................................6
1.3. 用語
1.4. Abbreviations .............................................10
1.4. 略語
1.5. Functional View of SCTP ...................................10
1.5 SCTPの機能的観点
1.5.1. Association Startup and Takedown ...................11
1.5.1. AssociationのStartupとTakedown
1.5.2. Sequenced Delivery within Streams ..................12
1.5.2. ストリーム内の順序送信
1.5.3. User Data Fragmentation ............................12
1.5.3. ユーザデータの分割(フラグメント)
1.5.4. Acknowledgement and Congestion Avoidance ...........12
1.5.4. Acknowledgementと輻輳回避
1.5.5. Chunk Bundling .....................................13
1.5.5. チャンクバンドリング
1.5.6. Packet Validation ..................................13
1.5.6 パケット検証
1.5.7. Path Management ....................................13
1.5.7. パスマネジメント
1.6. Serial Number Arithmetic ..................................14
1.6 シリアルナンバーの計算
1.7. Changes from RFC 2960 .....................................15
1.7. RFC2960からの変更点
2. Conventions ....................................................15
2. ルール
3. SCTP Packet Format .............................................15
3. SCTPパケットフォーマット
3.1. SCTP Common Header Field Descriptions .....................16
3.1. SCTP共通ヘッダーフィールドの説明
3.2. Chunk Field Descriptions ..................................17
3.2. チャンクフィールドの説明
3.2.1. Optional/Variable-Length Parameter Format ..........19
3.2.1. オプション/可変長パラメータのフォーマット
3.2.2. Reporting of Unrecognized Parameters ...............21
3.2.2. 認められていないパラメータの報告
3.3. SCTP Chunk Definitions ....................................21
3.3. SCTPチャンク定義
3.3.1. Payload Data (DATA) (0) ............................22
3.3.1. ペイロードデータ (DATA) (0)
3.3.2. Initiation (INIT) (1) ..............................24
3.3.2 Initialtion (INIT) (1)
3.3.2.1. Optional/Variable-Length Parameters in INIT
........................27
3.3.2.1 INITのオプション/可変長パラメータ
3.3.3. Initiation Acknowledgement (INIT ACK) (2) ..........30
3.3.3. Initiation Acknowledgement (INIT ACK) (2)
3.3.3.1. Optional or Variable-Length Parameters ....33
3.3.3.1. オプション/可変長パラメータ
3.3.4. Selective Acknowledgement (SACK) (3) ...............34
3.3.4 Selective Acknowledgement (SACK) (3)
3.3.5. Heartbeat Request (HEARTBEAT) (4) ..................38
3.3.5. Heartbeat Request (HEARTBEAT) (4)
3.3.6. Heartbeat Acknowledgement (HEARTBEAT ACK) (5) ......39
3.3.6. Heartbeat Acknowledgement (HEARTBEAT ACK) (5)
3.3.7. Abort Association (ABORT) (6) ......................40
3.3.7. Abort Association (ABORT) (6)
3.3.8. Shutdown Association (SHUTDOWN) (7) ................41
3.3.8. Shutdown Association (SHUTDOWN) (7)
3.3.9. Shutdown Acknowledgement (SHUTDOWN ACK) (8) ........41
3.3.9. Shutdown Acknowledgement (SHUTDOWN ACK) (8)
3.3.10. Operation Error (ERROR) (9) .......................42
3.3.10. Operation Error (ERROR) (9)
3.3.10.1. Invalid Stream Identifier (1) ............44
3.3.10.1 Invalid Stream Identifier (1)
3.3.10.2. Missing Mandatory Parameter (2) ..........44
3.3.10.2 Missing Mandatory Parameter (2)
3.3.10.3. Stale Cookie Error (3) ...................45
3.3.10.3. Stale Cokie Error (3)
3.3.10.4. Out of Resource (4) ......................45
3.3.10.4. Out of resource (4)
3.3.10.5. Unresolvable Address (5) .................46
3.3.10.5. Unresolvable Address (5)
3.3.10.6. Unrecognized Chunk Type (6) ..............46
3.3.10.6. Unrecognized Chunk Type (6)
3.3.10.7. Invalid Mandatory Parameter (7) ..........47
3.3.10.7. Invalid Mandatory Parameter (7)
3.3.10.8. Unrecognized Parameters (8) ..............47
3.3.10.8. Unrecognized Parameters (8)
3.3.10.9. No User Data (9) .........................48
3.3.10.9. No User Data (9)
3.3.10.10. Cookie Received While Shutting Down (10)
...............................48
3.3.10.10. Cookie Received While Shutting Down (10)
Stewart Standards Track [Page 2]
RFC 4960 Stream Control Transmission Protocol September 2007
3.3.10.11. Restart of an Association with New Addresses (11)
......................49
3.3.10.11 Restart of an Association with New Addresses (11)
3.3.10.12. User-Initiated Abort (12) ...............49
3.3.10.12 User-Initiated Abort (12)
3.3.10.13. Protocol Violation (13) .................50
3.3.10.13 Protocol Violation (13)
3.3.11. Cookie Echo (COOKIE ECHO) (10)
....................50
3.3.11. Cookie Echo (COOKIE ECHO) (11)
3.3.12. Cookie Acknowledgement (COOKIE ACK) (11)
..........51
3.3.12. Cookie Acknowledgement (COOKIE ACK) (11)
3.3.13. Shutdown Complete (SHUTDOWN COMPLETE) (14)
........51
3.3.13. Shutdown Complete (SHUTDOWN COMPLETE) (14)
4. SCTP Association State Diagram
.................................52
4. SCTP Association状態遷移図
5. Association Initialization
.....................................56
5. Association Initialization
5.1. Normal Establishment of an Association
....................56
5.1. Associationの通常の確立
5.1.1. Handle Stream Parameters
...........................58
5.1.1. Streamパラメータの処理
5.1.2. Handle Address Parameters
..........................58
5.1.2. Addressパラメータの処理
5.1.3. Generating State Cookie
............................61
5.1.3. State Cookieの生成
5.1.4. State Cookie Processing
............................62
5.1.4. State Cookieの処理
5.1.5. State Cookie Authentication
........................62
5.1.5. State Cookieの認証
5.1.6. An Example of Normal Association Establishment
.....64
5.1.6. 通常のAssociation確立の例
5.2. Handle Duplicate or Unexpected INIT, INIT ACK, COOKIE
ECHO, and ..........................................65
5.2. 重複、予期しないINIT、INIT ACK、COOKIE ECHOの処理
5.2.1. INIT Received in COOKIE-WAIT or COOKIE-ECHOED State (Item B)
.......................66
5.2.1. COOKIE-WAIT or COOKIE-ECHOED状態でのINIT受信
5.2.2. Unexpected INIT in States Other than CLOSED, COOKIE-ECHOED,
.............................66
5.2.2. CLOSED、COOKIE-ECHOED以外の状態での予期しないINIT
5.2.3. Unexpected INIT ACK ................................67
5.2.3. 予期しないINIT ACK
5.2.4. Handle a COOKIE ECHO when a TCB Exists .............67
5.2.4. TCBが存在する場合のCOOKIE ECHOの処理
5.2.4.1. An Example of a Association Restart .......69
5.2.4.1 Association Restartの例
5.2.5. Handle Duplicate COOKIE-ACK. .......................71
5.2.5. COOKIE-ACK重複の処理
5.2.6. Handle Stale COOKIE Error ..........................71
5.2.6. COOKIE Error状態の処理
5.3. Other Initialization Issues
...............................72
5.3. 他のInitialization問題
5.3.1. Selection of Tag Value .............................72
5.3.1. Tag Valueの選択
5.4. Path Verification
.........................................72
5.4. パス検証
6. User Data Transfer
.............................................73
6. ユーザデータ送信
6.1. Transmission of DATA Chunks
...............................75
6.1. データチャンクの送信
6.2. Acknowledgement on Reception of DATA Chunks
...............78
6.2. データチャンク受信のAcknowledgement
6.2.1. Processing a Received SACK .........................81
6.2.1. SACK受信の処理
6.3. Management of Retransmission Timer
........................83
6.3. 再送タイマのマネジメント
6.3.1. RTO Calculation ....................................83
6.3.1. RTOの計算
6.3.2. Retransmission Timer Rules .........................85
6.3.2. 再送タイマのルール
6.3.3. Handle T3-rtx Expiration ...........................86
6.3.3. T3-rtx期限切れの処理
6.4. Multi-Homed SCTP Endpoints
................................87
6.4. Multi-Homed SCTPエンドポイント
6.4.1. Failover from an Inactive Destination Address ......88
6.4.1. 非アクティブな宛先アドレスからのFailover(障害迂回)
6.5. Stream Identifier and Stream Sequence Number
..............88
6.5. Stream Identifier and Stream Sequence Number
6.6. Ordered and Unordered Delivery
............................88
6.6. 順序送信と非順序送信
6.7. Report Gaps in Received DATA TSNs
.........................89
6.7. 受信したDATA TSNのGaps報告
6.8. CRC32c Checksum Calculation
...............................90
6.8. CRC32チェックサムの計算
6.9. Fragmentation and Reassembly
..............................91
6.9. 分割と組み立て
6.10. Bundling
.................................................92
6.10. バンドリング
7. Congestion Control
.............................................93
7. 輻輳制御
7.1. SCTP Differences from TCP Congestion Control
..............94
7.1 TCP輻輳制御とSCTPの違い
Stewart Standards Track [Page
3]
RFC 4960 Stream Control Transmission Protocol September 2007
7.2. SCTP
Slow-Start and Congestion Avoidance ..................95
7.2. SCTP Slow-Startと輻輳回避
7.2.1. Slow-Start .........................................96
7.2.1 Slow-Start
7.2.2. Congestion Avoidance ...............................97
7.2.2. 輻輳回避
7.2.3. Congestion Control .................................98
7.2.3. 輻輳制御
7.2.4. Fast Retransmit on Gap Reports .....................98
7.2.4. Gap ReportのFast Retransmit
7.3. Path MTU Discovery .......................................100
7.3. Path MTU Discovery
8. Fault Management ..............................................100
8. Fault Management
8.1. Endpoint Failure Detection ...............................100
8.1 エンドポイント障害検知
8.2. Path Failure Detection ...................................101
8.2. パス障害検知
8.3. Path Heartbeat ...........................................102
8.3. Path Heartbeat
8.4. Handle "Out of the Blue" Packets .........................104
8.4. "Out of the Blue"パケットの処理
8.5. Verification Tag .........................................105
8.5. Tagの検証
8.5.1. Exceptions in Verification Tag Rules ..............105
8.5.1. Tagルール検証の例外
9. Termination of Association ....................................106
9. Associationの終了
9.1. Abort of an Association ..................................107
9.1. AssociationのAbort
9.2. Shutdown of an Association ...............................107
9.2. AssociationのShutdown
10. Interface with Upper Layer ...................................110
10. 上位レイヤのInterface
10.1. ULP-to-SCTP .............................................110
10.1 上位レイヤからSCTP
10.2. SCTP-to-ULP .............................................120
10.2. SCTPから上位レイヤ
11. Security Considerations ......................................123
11. セキュリティの考慮
11.1. Security Objectives .....................................123
11.1 セキュリティの目的
11.2. SCTP Responses to Potential Threats .....................124
11.2. 脆弱性へのSCTPの対応
11.2.1. Countering Insider Attacks .......................124
11.2.1 Inside攻撃への対応
11.2.2. Protecting against Data Corruption in the Network
..........................................124
11.2.2 ネットワーク内のデータ破損に対する保護
11.2.3. Protecting Confidentiality .......................124
11.2.3 機密性の保護
11.2.4. Protecting against Blind Denial-of-Service Attacks
........................125
11.2.4. DoS攻撃からの保護
11.2.4.1. Flooding ................................125
11.2.4.1. Flooding
11.2.4.2. Blind Masquerade ........................126
11.2.4.2. Blind Masquerade
11.2.4.3. Improper Monopolization of Services .....127
11.2.4.3. 不適切なサービス独占
11.3. SCTP Interactions with Firewalls ........................127
11.3. ファイヤーウォールとSCTPの作用
11.4. Protection of Non-SCTP-Capable Hosts ....................128
11.4. SCTP非対応ホストの保護
12. Network Management Considerations ............................128
12. ネットワークマネジメントの考慮
13. Recommended Transmission Control Block (TCB) Parameters ......129
13. 推奨されるTCBパラメータ
13.1. Parameters Necessary for the SCTP Instance ..............129
13.1. SCTPインスタンスに必要なパラメータ
13.2. Parameters Necessary per Association (i.e., the TCB) ....129
13.2. Association(すなわちTCB)毎に必要なパラメータ
13.3. Per Transport Address Data ..............................131
13.3. Transport Adddress Data毎に
13.4. General Parameters Needed ...............................132
13.4. 一般的に必要なパラメータ
14. IANA Considerations ..........................................132
14. IANAの考慮
14.1. IETF-defined Chunk Extension ............................132
14.1 IETF定義のチャンク拡張
14.2. IETF-Defined Chunk Parameter Extension ..................133
14.2 IETF定義のチャンクパラメータ拡張
14.3. IETF-Defined Additional Error Causes ....................133
14.3. IETF定義の追加エラーCause
14.4. Payload Protocol Identifiers ............................134
14.4 ペイロードプロトコルの識別子
14.5. Port Numbers Registry ...................................134
14.5. ポート番号登録簿
15. Suggested SCTP Protocol Parameter Values .....................136
15. 提案されるSCTPプロトコルパラメータ値
16. Acknowledgements .............................................137
16. Acknowledgements
Appendix A. Explicit Congestion Notification .....................139
Appendix A. 詳細な輻輳通知
Stewart Standards Track [Page
4]
RFC 4960 Stream Control Transmission Protocol September 2007
Appendix B. CRC32c
Checksum Calculation ..........................140
Appendix A. CRC32チェックサムの計算
Appendix C. ICMP Handling ........................................142
Appendix C. ICMPの処理
References .......................................................149
参照
Normative References ..........................................149
Normative References
Informative References ........................................150
Informative References
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.
このセクションではStream Control Transmission Protocol (SCTP)が提供するサービス、
プロトコルの詳細を理解するために必要な基本的なコンセプトの背景を説明する。
This document
obsoletes [RFC2960] and [RFC3309].
このドキュメントはRFC2960、RFC3309を廃止する。
1.1.
Motivation
1.1. モチベーション
TCP [RFC0793]
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
[RFC0768]. The limitations that users have wished to bypass include
the following:
TCP [RFC0793]はIPネットワーク内の高信頼性のデータ転送の方法としてサービスを提供している。
しかし、最近のアプリケーションではTCPの多くの制限から、UDP[RFC0768]上に独自の信頼性のあるデータ転送プロトコルが組み込まれている。
ユーザが回避を望む制限には下記のものがある。
-- 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
delay.
-- TCPは信頼性のデータ転送と厳密なデータの順序伝送を提供する。
データお順序性が必要なアプリケーションもあるが、一部のアプリケーションでは順序制御のない信頼性のデータ転送を必要とする。
これらの両方のケースでは、TCPが提供するhead-of-line
blocking(head-of-the-lineブロッキング(キュー送信によるブロッキング)が原因となる。
-- The
stream-oriented nature of TCP is often an inconvenience.
Applications must add their own record marking to delineate their
messages, and must make explicit use of the push facility to
ensure that a complete message is transferred in a reasonable
time.
-- TCPのストリーム指向は不便である。
アプリケーションはプッシュ機構を使用する、メッセージを送信する。
-- The limited scope of TCP sockets complicates the task of providing
highly-available data transfer capability using multi-homed hosts.
-- TCPの限られた範囲では、multi-homed hostsを使用した高信頼データ転送の提供が複雑になる。
-- TCP is relatively vulnerable to denial-of-service attacks, such as
SYN attacks.
--TCPはSYN攻撃のようなDoS攻撃に比較的脆弱である。
Transport of
PSTN signaling across the IP network is an application
for which all of these limitations of TCP are relevant. While this
application directly motivated the development of SCTP, other
applications may find SCTP a good match to their requirements.
IPネットワーク上のPSTNシグナリングの転送は、TCPのこれらの制限が関係しているアプリケーションである。
これがSCTPの開発の動機であり、いくつかのアプリケーションの要件にもマッチする。
Stewart Standards Track [Page 5]
RFC 4960 Stream Control Transmission Protocol September 2007
1.2. Architectural
View of SCTP
1.2. SCTPのアーキテクチャ観点
SCTP is viewed
as a layer between the SCTP user application ("SCTP
user" for short) and a connectionless packet network service such as
IP. The remainder of this document assumes SCTP runs on top of IP.
The basic service offered by SCTP is the reliable transfer of user
messages between peer SCTP users.
It performs this service within the context of an association between two
SCTP endpoints.
Section 10 of this document sketches the API that should exist at the
boundary
between the SCTP and the SCTP user layers.
SCTPはSCTPユーザアプリケーション(略:SCTP user)とIPのようなコネクションレスのパケットサービスとみなされる。
SCTPはIP上で動作することを前提とする。
SCTPが提供する基本機能はSCTPユーザ間のユーザメッセージの信頼性転送である。
SCTPは2つのSCTPエンドポイント間のassociationのコンテキスト内でこのサービスを実行する。
Section 10ではSCTPとSCTPユーザレイヤ間の境界に存在するAPIを説明する。
SCTP is connection-oriented in nature, but the SCTP association is a
broader concept than the TCP connection.
SCTP provides the means for each SCTP endpoint (Section 1.3) to provide the
other endpoint
(during association startup) with a list of transport addresses
(i.e., multiple IP addresses in combination with an SCTP port)
through which that endpoint can be reached and from which it will
originate SCTP packets. The association spans transfers over all of
the possible source/destination combinations that may be generated
from each endpoint's lists.
SCTPはコネクション指向の性質があるが、SCTP associationはTCPコネクションより広範なコンセプトである。
SCTPは各SCTPエンドポイントにSCTPパケット転送するための転送アドレスのリスト(すなわちSCTPポートと組み合わせられた複数のIPアドレス)を他のエンドポイントに提供するための方法を提供する。
Associationは各エンドポイントのリストから生成されるsource/destinationのすべての組み合わせの転送に作成される。
_____________ _____________
| SCTP User | | SCTP User |
| Application | | Application |
|-------------| |-------------|
| SCTP | | SCTP |
| Transport | | Transport |
| Service | | Service |
|-------------| |-------------|
| |One or more ---- One or more| |
| IP Network |IP address \/ IP address| IP Network |
| Service |appearances /\ appearances| Service |
|_____________| ---- |_____________|
SCTP Node A |<-------- Network transport ------->| SCTP Node B
Figure 1: An SCTP Association
1.3. Key Terms
1.3. 用語
Some of the
language used to describe SCTP has been introduced in the
previous sections. This section provides a consolidated list of the
key terms and their definitions.
SCTPを説明するために使用される用語は前の章で導入された。
この章では用語と定義を提供する。
o Active destination transport address: A transport address on a
peer endpoint that a transmitting endpoint considers available for
receiving user messages.
o Active destination transport address:
送信側エンドポイントがユーザデータを受信可能と判断しているエンドポイント間のトランスポートアドレス。
Stewart Standards Track [Page 6]
RFC 4960 Stream Control Transmission Protocol September 2007
o Bundling: An
optional multiplexing operation, whereby more than
one user message may be carried in the same SCTP packet. Each
user message occupies its own DATA chunk.
o Bundling(バンドリング)
複数のユーザメッセージを同じSCTPパケットで転送することによる多重化処理。
各ユーザメッセージは各データチャンクで送信される。
o Chunk: A unit of information within an SCTP packet, consisting of
a chunk header and chunk-specific content.
o Chunk(チャンク):
チャンクヘッダとチャンクコンテンツで構成されるSCTPパケット内の情報の単位。
o Congestion
window (cwnd): An SCTP variable that limits the data,
in number of bytes, a sender can send to a particular destination
transport address before receiving an acknowledgement.
o Congestion window (cwnd)(輻輳ウィンドウ):
データを制限するSCTPのパラメータ(byte数)で、送信側がacknowledgementを受信する前に宛先アドレスに送信できる。
o Cumulative
TSN Ack Point: The TSN of the last DATA chunk
acknowledged via the Cumulative TSN Ack field of a SACK.
o Cumulative TSN Ack Point(累積TSN Ack Point):
最後のデータチャンクのTSNはSACKの累積TSN AckフィールドでAckされる。
o Idle
destination address: An address that has not had user
messages sent to it within some length of time, normally the
HEARTBEAT interval or greater.
o Idle destination address:
ユーザメッセージをHEARTBEATかそれ以上の時間に受信できなかったアドレス。
o Inactive destination transport address: An address that is
considered inactive due to errors and unavailable to transport
user messages.
o Inactive destination transport address:
エラーによりinactiveと判断され、ユーザメッセージの転送に使用できないアドレス。
o Message =
user message: Data submitted to SCTP by the Upper Layer
Protocol (ULP).
o Message = user message:
上位レイヤ(ULP)からSCTPに送信されるデータ。
o Message
Authentication Code (MAC): An integrity check mechanism
based on cryptographic hash functions using a secret key.
Typically, message authentication codes are used between two
parties that share a secret key in order to validate information
transmitted between these parties.
In SCTP, it is used by an endpoint to validate the State Cookie
information that is returned
from the peer in the COOKIE ECHO chunk.
The term "MAC" has different meanings in different contexts. SCTP uses
this term
with the same meaning as in [RFC2104].
o Message Authentication Code (MAC):
秘密鍵を用いたハッシュ関数に基づく、Integrityチェックのメカニズム。
通常、MACは秘密鍵を共有する2者間で送信された情報の検証のために使用される。
SCTPでは、COOKIE ECHOチャンクでピアから返信されたState Cookie情報を検証するためにエンドポイントで使用される。
o Network Byte
Order: Most significant byte first, a.k.a., big
endian.
o Network Byte Order(ネットワークバイトオーダー):
最上位byteが最初。別名ビッグエンディアン。
o Ordered Message: A user message that is delivered in order with
respect to all previous user messages sent within the stream on
which the message was sent.
o Ordered Message(順序制御されたメッセージ):
メッセージが送信されたストリーム内で順序通りに転送されたユーザメッセージ。
o Outstanding
TSN (at an SCTP endpoint): A TSN (and the associated
DATA chunk) that has been sent by the endpoint but for which it
has not yet received an acknowledgement.
o Outstanding TSN (at an SCTP endpoint)(SCTPエンドポイントの未処理のTSN):
エンドポイントにより送信されたが、acknowledgementを受信していないTSNおよび関連するデータチャンク。
Stewart Standards Track [Page 7]
RFC 4960 Stream Control Transmission Protocol September 2007
o Path: The
route taken by the SCTP packets sent by one SCTP
endpoint to a specific destination transport address of its peer
SCTP endpoint. Sending to different destination transport
addresses does not necessarily guarantee getting separate paths.
o Path:
SCTPエンドポイント間の特定の宛先トランスポートアドレスへのSCTPエンドポイントが送信したSCTPパケットが通るルート。
異なる宛先トランスポートアドレスに送信することは、必ずしもパスを分けることを必要としない。
o Primary Path: The primary path is the destination and source
address that will be put into a packet outbound to the peer
endpoint by default. The definition includes the source address
since an implementation MAY wish to specify both destination and
source address to better control the return path taken by reply
chunks and on which interface the packet is transmitted when the
data sender is multi-homed.
o Primary Path:
Primary pathはエンドポイント間の送信にデフォルトで使用される宛先と送信元のアドレス。
定義は送信元アドレスと宛先アドレスを含んでいる、それは、実装ではマルチホーム送信のときにパケットを送信する送信元・宛先の両方のアドレスを指定するため。。
o Receiver Window (rwnd): An SCTP variable a data sender uses to
store the most recently calculated receiver window of its peer, in
number of bytes. This gives the sender an indication of the space
available in the receiver's inbound buffer.
o Receiver Window (rwnd):
SCTP変数でデータ送信側がエンドポイント間の最新の受信ウィンドウを保持するために使用するバイト数。
送信者に受信者の受信バッファの使用可能な領域の値を示す。
o SCTP association: A protocol relationship between SCTP endpoints,
composed of the two SCTP endpoints and protocol state information
including Verification Tags and the currently active set of
Transmission Sequence Numbers (TSNs), etc. An association can be
uniquely identified by the transport addresses used by the
endpoints in the association. Two SCTP endpoints MUST NOT have
more than one SCTP association between them at any given time.
o SCTP association:
SCTPエンドポイント間のプロトコルの関係。
2つのSCTPエンドポイントとVerification Tag、TSNなどのプロトコル状態情報から構成される。
Associationはassociationのエンドポイントのトランスポートアドレスを使って一意に識別できる。
2つのSCTPエンドポイントある時点でその間に複数のSCTP associationを持ってはいけない。
o SCTP endpoint: The logical sender/receiver of SCTP packets. On a
multi-homed host, an SCTP endpoint is represented to its peers as
a combination of a set of eligible destination transport addresses
to which SCTP packets can be sent and a set of eligible source
transport addresses from which SCTP packets can be received. All
transport addresses used by an SCTP endpoint must use the same
port number, but can use multiple IP addresses. A transport
address used by an SCTP endpoint must not be used by another SCTP
endpoint. In other words, a transport address is unique to an
SCTP endpoint.
o SCTP endpoint:
SCTPパケットの論理的な送信者/受信者。
マルチホームホストでは、SCTPエンドポイントは、送信元トランスポートアドレスと宛先トランスポートアドレスの組である。
SCTPエンドポイントで使用されるトランスポートアドレスは同じポート番号を使用する必要があるが、複数のIPアドレスを使用することができる。
SCTPに使用されるトランスポートアドレスは別のSCTPエンドポイントで使用することはできない。
つまり、トランスポートアドレスはSCTPエンドポイントで一意である。
o SCTP packet (or packet): The unit of data delivery across the
interface between SCTP and the connectionless packet network
(e.g., IP). An SCTP packet includes the common SCTP header,
possible SCTP control chunks, and user data encapsulated within
SCTP DATA chunks.
o SCTP packet (or packet):
SCTPとコネクションレスパケット網(例:IP)間のインタフェース間のデータ送信ユニット。
SCTPパケットはSCTPヘッダを含み、場合によりSCTP制御チャンク、SCTPデータチャンク(カプセル化ユーザデータを含む)も含まれる。
o SCTP user application (SCTP user): The logical higher-layer
application entity which uses the services of SCTP, also called
the Upper-Layer Protocol (ULP).
o SCTP user application (SCTP user)
SCTPを使用する論理的に上位のアプリケーション。Upper-Layer Protocol(ULP)とも呼ばれる。
Stewart Standards Track [Page
8]
RFC 4960 Stream Control Transmission Protocol September 2007
o Slow-Start
Threshold (ssthresh): An SCTP variable. This is the
threshold that the endpoint will use to determine whether to
perform slow start or congestion avoidance on a particular
destination transport address. Ssthresh is in number of bytes.
o Slow-Start Threshold (ssthresh):
SCTP変数。エンドポイントが特定の宛先トランスポートアドレスにスロースタートや輻輳回避を実行するかを決定するための閾値。ssthreshはバイト数。
o Stream: A unidirectional logical channel established from one to
another associated SCTP endpoint, within which all user messages
are delivered in sequence except for those submitted to the
unordered delivery service.
o Stream:
2つのSCTPエンドポイント間で確立される一方向の論理チャネルで、すべてのユーザメッセージが順序送信(非順序送信のServiceは除く)により送信される。
Note: The relationship between stream numbers in opposite directions
is strictly a matter of how the applications use them. It is the
responsibility of the SCTP user to create and manage these
correlations if they are so desired.
対向のストリームとの関連はアプリケーションが管理する。
o Stream
Sequence Number: A 16-bit sequence number used internally
by SCTP to ensure sequenced delivery of the user messages within a
given stream. One Stream Sequence Number is attached to each user
message.
o Stream Sequence Number:
ストリーム内のユーザメッセージの順序送信を保証するため、SCTPが使用する16ビットのシーケンス番号。
Stream Sequence Numberは各ユーザメッセージに付与される。
o Tie-Tags: Two 32-bit random numbers that together make a 64-bit
nonce. These tags are used within a State Cookie and TCB so that
a newly restarting association can be linked to the original
association within the endpoint that did not restart and yet not
reveal the true Verification Tags of an existing association.
o Tie-Tags:
64bitのnonceを作る32bitの乱数。
タグは、associationにリンクできるようにState CookieとTCBで使用される。
o Transmission Control Block (TCB): An internal data structure
created by an SCTP endpoint for each of its existing SCTP
associations to other SCTP endpoints. TCB contains all the status
and operational information for the endpoint to maintain and
manage the corresponding association.
o Transmission Control Block (TCB):
他のSCTPエンドポイントへ各SCTP associationのためにSCTPエンドポイントによって作成された内部データ構造。
TCBはassociationを維持、管理するための状態情報と運用状態のすべてを含んでいる。
o Transmission Sequence Number (TSN): A 32-bit sequence number used
internally by SCTP. One TSN is attached to each chunk containing
user data to permit the receiving SCTP endpoint to acknowledge its
receipt and detect duplicate deliveries.
o Transmission Sequence Number (TSN):
SCTPが内部的に使用する32ビットのシーケンス番号。
TSNは受信の確認と重複受信検出を受信側SCTPエンドポイントが可能なようにユーザデータを含むチャンクに付与される。
o Transport address: A transport address is traditionally defined by
a network-layer address, a transport-layer protocol, and a
transport-layer port number. In the case of SCTP running over IP,
a transport address is defined by the combination of an IP address
and an SCTP port number (where SCTP is the transport protocol).
o Transport address:
ネットワークレイヤアドレス(ネットワーク層)とポート番号(トランスポート層)。
o Unacknowledged TSN (at an SCTP endpoint): A TSN (and the
associated DATA chunk) that has been received by the endpoint but
for which an acknowledgement has not yet been sent. Or in the
opposite case, for a packet that has been sent but no
acknowledgement has been received.
o Unacknowledged TSN (at an SCTP endpoint):
エンドポイントで受信されたが、acknowledgementがまだ送信されていないTSN。
送信側ではパケットは送信されたが、acknowledgementがまだ受信されていない。
Stewart Standards Track [Page 9]
RFC 4960 Stream Control Transmission Protocol September 2007
o Unordered
Message: Unordered messages are "unordered" with respect
to any other message; this includes both other unordered messages
as well as other ordered messages. An unordered message might be
delivered prior to or later than ordered messages sent on the same
stream.
o Unordered Message(順序制御されていないメッセージ):
非順序送信の他のメッセージ(非順序送信メッセージ or 順序送信メッセージ)に関して非順序送信である。
非順序送信メッセージは同じストリームで送信された順序送信メッセージの前後に送信される。
o User message: The unit of data delivery across the interface
between SCTP and its user.
o User message:
SCTPとユーザ間のインタフェースのデータ送信単位。
o Verification Tag: A 32-bit unsigned integer that is randomly
generated. The Verification Tag provides a key that allows a
receiver to verify that the SCTP packet belongs to the current
association and is not an old or stale packet from a previous
association.
o Verification Tag:
ランダムに生成される32bit非負整数。
Verification
Tagは受信者のSCTPパケットが現在のassociationに属し、以前のassociationの古いパケットか確認するキーを提供する。
1.4. Abbreviations
MAC - Message Authentication Code [RFC2104]
RTO - Retransmission Timeout
RTT - Round-Trip Time
RTTVAR - Round-Trip Time Variation
SCTP - Stream Control Transmission Protocol
SRTT - Smoothed RTT
TCB - Transmission Control Block
TLV - Type-Length-Value coding format
TSN - Transmission Sequence Number
ULP - Upper-Layer Protocol
1.5. Functional
View of SCTP
1.5 SCTPの機能的観点
The SCTP transport service can be decomposed into a number of
functions. These are depicted in Figure 2 and explained in the
remainder of this section.
SCTPトランスポートサービスはいくつかの機能に分割できる。
これらは図2に示されるとおり、本章で説明される。
Stewart Standards Track [Page 10]
RFC 4960 Stream Control Transmission Protocol September 2007
SCTP User Application
SCTPユーザアプリケーション
-----------------------------------------------------
__________________________________________
| || Sequenced Delivery |
| Association || within Streams |
| ||____________________|
| Startup |Stream内の順序送信
| |______________________________
| and || User Data Fragmentation |
| ||____________________________|
| Takedown |ユーザデータのフラグメント
| |______________________________
| || Acknowledgement |
| || and |
| || Congestion Avoidance |
| ||____________________________|
| |Acknowledgementと輻輳回避
| |_______________________________
| || Chunk Bundling |
| ||_____________________________|
| |
| |___________________________________
| || Packet Validation |
| ||_________________________________|
| |
| |_______________________________
| || Path Management |
|__________________||______________________________|
Figure 2: Functional View of the SCTP Transport Service
Figure 2: SCTP Transport Serviceの機能観点
1.5.1. Association
Startup and Takedown
1.5.1. Association Startup and Takedown
An association
is initiated by a request from the SCTP user (see the
description of the ASSOCIATE (or SEND) primitive in Section 10).
アソシエーションはSCTPユーザからの要求で初期化される。
(ASSOCIATE SENDのプリミティブはSection 10参照。)
A cookie
mechanism, similar to one described by Karn and Simpson in
[RFC2522], is employed during the initialization to provide
protection against synchronization attacks. The cookie mechanism
uses a four-way handshake, the last two legs of which are allowed to
carry user data for fast setup. The startup sequence is described in
Section 5 of this document.
RFC2522でKarn and Simpsonが述べたのと同じcookieメカニズムがsyn
attackに対する保護を提供するため初期化中に使用される。
4-way handshakeのcookieメカニズムは、fast setupでユーザデータを送信する最後の2 legを使う。
startupシーケンスはSection 5で述べられる。
SCTP provides
for graceful close (i.e., shutdown) of an active
association on request from the SCTP user. See the description of
the SHUTDOWN primitive in Section 10. SCTP also allows ungraceful
close (i.e., abort), either on request from the user (ABORT
Stewart Standards Track [Page 11]
RFC 4960 Stream Control Transmission Protocol September 2007
primitive) or as a
result of an error condition detected within the
SCTP layer. Section 9 describes both the graceful and the ungraceful
close procedures.
SCTPはSCTPユーザからの要求によるアクティブなassociationのgraceful 切断(shutdown)を提供する。
SHUTDOWNプリミティブはSection 10参照。SCTPはユーザからの要求やSCTPレイヤで検出されたエラーによるungraceful
切断(abort)も許可する。
Section 9ではgraceful切断、ungraceful切断を説明する。
SCTP does not
support a half-open state (like TCP) wherein one side
may continue sending data while the other end is closed. When either
endpoint performs a shutdown, the association on each peer will stop
accepting new data from its user and only deliver data in queue at
the time of the graceful close (see Section 9).
SCTPはTCPのようなhalf-open state(片方が切断されている間にもう片方がデータを送信する)をサポートしない。
エンドポイントの片方がshutdownすると、各peerのassociationは新しいデータの受け入れを停止し、graceful切断時にキューのデータのみを送信する。
1.5.2. Sequenced Delivery within Streams
The term
"stream" is used in SCTP to refer to a sequence of user
messages that are to be delivered to the upper-layer protocol in
order with respect to other messages within the same stream. This is
in contrast to its usage in TCP, where it refers to a sequence of
bytes (in this document, a byte is assumed to be 8 bits).
streamは同じストリーム内の他のメッセージとの間で順番に上位レイヤに送信されるユーザメッセージのsequenceを表すためにSCTPで使われる。これはbyteのsequenceを表すTCPの使用方法とは対照的である。
The SCTP user can specify at association startup time the number of
streams to be supported by the association. This number is
negotiated with the remote end (see Section 5.1.1). User messages
are associated with stream numbers (SEND, RECEIVE primitives, Section
10). Internally, SCTP assigns a Stream Sequence Number to each
message passed to it by the SCTP user. On the receiving side, SCTP
ensures that messages are delivered to the SCTP user in sequence
within a given stream. However, while one stream may be blocked
waiting for the next in-sequence user message, delivery from other
streams may proceed.
SCTPユーザはassociation startup時にサポートされるassociation数を指定できる。
その数はremote end(Section 5.1.1)でネゴシエーションされる。
ユーザメッセージはstream number(SEND、RECEIVEプリミティブ。Section 10)に関連付けられる。
内部的には、SCTPはSCTPユーザから渡された各メッセージにStream Sequence Numberを付与する。
受信側ではSCTPはメッセージが指定されたstream内のsequenceのSCTPユーザに送信されることを保証する。
streamが次のsequence内のユーザメッセージ待ちのためブロック中、別のstreamの送信を進めてよい。
SCTP provides a mechanism for bypassing the sequenced delivery
service. User messages sent using this mechanism are delivered to
the SCTP user as soon as they are received.
SCTPはsequence deliveryのバイパスのためのメカニズムを提供する。
このメカニズムを使用して送信されたユーザメッセージは、受信したSCTPユーザにすぐに届けられる。
1.5.3. User Data Fragmentation
When needed,
SCTP fragments user messages to ensure that the SCTP
packet passed to the lower layer conforms to the path MTU. On
receipt, fragments are reassembled into complete messages before
being passed to the SCTP user.
SCTPは下層に渡すSCTPパケットのパスMTUのを保証するためユーザメッセージをfragmentする。
受信ではfragmentはSCTPユーザに渡される前に元のメッセージにreassembleされる。
1.5.4. Acknowledgement and Congestion Avoidance
SCTP assigns a
Transmission Sequence Number (TSN) to each user data
fragment or unfragmented message. The TSN is independent of any
Stream Sequence Number assigned at the stream level. The receiving
end acknowledges all TSNs received, even if there are gaps in the
sequence. In this way, reliable delivery is kept functionally
separate from sequenced stream delivery.
SCTPはTransmission Sequence Number(TSN)を各ユーザデータメッセージに付与する。
TSNはstream levelで割り当てられたStream Sequence Numberとは無関係である。
受信側はsequenceにgapがあってもすべてのTSNをacknowledgeする。
これにより、信頼性送信と順序送信の機能分割が保たれる。
Stewart
Standards Track [Page 12]
RFC 4960 Stream Control Transmission Protocol September 2007
The acknowledgement
and congestion avoidance function is responsible
for packet retransmission when timely acknowledgement has not been
received. Packet retransmission is conditioned by congestion
avoidance procedures similar to those used for TCP. See Section 6
and Section 7 for a detailed description of the protocol procedures
associated with this function.
acknowledgementと輻輳回避はacknowledgementが受信できない時のパケット再送を担う。
パケット再送はTCPで使用されるものと同様の輻輳回避プロシージャで調整される。
この機能に関連するプロシージャの詳細はSection6、7を参照。
1.5.5. Chunk Bundling
As described in
Section 3, the SCTP packet as delivered to the lower
layer consists of a common header followed by one or more chunks.
Each chunk may contain either user data or SCTP control information.
The SCTP user has the option to request bundling of more than one
user message into a single SCTP packet. The chunk bundling function
of SCTP is responsible for assembly of the complete SCTP packet and
its disassembly at the receiving end.
Section 3で説明したように、SCTP下位レイヤに送信されるSCTPパケットは1つ以上のチャンクと共通ヘッダで構成される。
各チャンクはSCTP control informationまたはユーザデータを含んでよい。
SCTPユーザは一つのSCTPパケットに複数のユーザデータのbundlingを要求するオプションをもつ。
チャンクbundling機能はSCTPパケットの分割と受信側での組み立てを担う。
During times of
congestion, an SCTP implementation MAY still perform
bundling even if the user has requested that SCTP not bundle. The
user's disabling of bundling only affects SCTP implementations that
may delay a small period of time before transmission (to attempt to
encourage bundling). When the user layer disables bundling, this
small delay is prohibited but not bundling that is performed during
congestion or retransmission.
輻輳時、SCTPの実装ではユーザがSCTP bundleされないことを要求した場合でもbundlingを実行してもよい。
bundlingのユーザによる無効化は送信前のわずかな遅延に関するSCTPの実装に影響を与える(bundlingを試みるため)。
ユーザ層がbudlingを無効化したらわずかな遅延を抑えられるが、輻輳時や再送時にbundlingが実行されない。
1.5.6. Packet Validation
A mandatory
Verification Tag field and a 32-bit checksum field (see
Appendix B for a description of the CRC32c checksum) are included in
the SCTP common header. The Verification Tag value is chosen by each
end of the association during association startup. Packets received
without the expected Verification Tag value are discarded, as a
protection against blind masquerade attacks and against stale SCTP
packets from a previous association. The CRC32c checksum should be
set by the sender of each SCTP packet to provide additional
protection against data corruption in the network. The receiver of
an SCTP packet with an invalid CRC32c checksum silently discards the
packet.
必須のVerificaton Tagフィールドと32bitチェックサムフィールド(CRC32チェックサムの詳細はAppenix B参照)はSCTP
common headerに含まれる。
Verification Tagの値はassociation startup時に各association間で選択される。
正しいVerification Tagなしで受信したパケットはblind masquerade
attackと古いassociationパケットとして削除される。
CRC32チェックサムはネットワークによるデータ破損に対する保護を提供するため各SCTPパケットの送信者によって送信されること。
不正なCRCチェックサムのSCTPパケットの受信者はパケットを破棄する。
1.5.7. Path Management
The sending SCTP
user is able to manipulate the set of transport
addresses used as destinations for SCTP packets through the
primitives described in Section 10. The SCTP path management
function chooses the destination transport address for each outgoing
SCTP packet based on the SCTP user's instructions and the currently
perceived reachability status of the eligible destination set. The
path management function monitors reachability through heartbeats
Stewart Standards Track [Page 13]
RFC 4960 Stream Control Transmission Protocol September 2007
when other packet
traffic is inadequate to provide this information
and advises the SCTP user when reachability of any far-end transport
address changes. The path management function is also responsible
for reporting the eligible set of local transport addresses to the
far end during association startup, and for reporting the transport
addresses returned from the far end to the SCTP user.
SCTP送信者はSection10で説明されるプリミティブによりSCTPパケットの宛先として使用されるtransport
addressのsetを操作できる。
SCTP path managementはSCTPユーザの指定や宛先の到達性の状態に基づき、各送信SCTPパケットの宛先transport
addressを選択する。
path managementはパケットトラヒックの情報が不足している場合、heartbeatで到達性を監視し、SCTPユーザに他のtransport
addressの到達性の変化を通知する。
path managementはassociation startup時に相手へのlocal transport
addressを通知と、相手のSCTPユーザから返されたtransport addressを報告を担い。
At association
startup, a primary path is defined for each SCTP
endpoint, and is used for normal sending of SCTP packets.
association startup時、primary
pathは各SCTP間に定義され、通常のSCTPパケット送信に使用される。
On the receiving
end, the path management is responsible for
verifying the existence of a valid SCTP association to which the
inbound SCTP packet belongs before passing it for further processing.
受信側ではpath managementは受信したSCTPパケットをその後の処理に渡す前に正しいSCTP
associationであるかの確認を担う。
Note: Path
Management and Packet Validation are done at the same
time, so although described separately above, in reality they cannot
be performed as separate items.
Path ManagementとPacket
Validationは同時には実行されるため、実際は上記に分けた説明が別々に実行されることはない。
1.6. Serial Number Arithmetic
It is essential
to remember that the actual Transmission Sequence
Number space is finite, though very large. This space ranges from 0
to 2**32 - 1. Since the space is finite, all arithmetic dealing with
Transmission Sequence Numbers must be performed modulo 2**32. This
unsigned arithmetic preserves the relationship of sequence numbers as
they cycle from 2**32 - 1 to 0 again. There are some subtleties to
computer modulo arithmetic, so great care should be taken in
programming the comparison of such values. When referring to TSNs,
the symbol "=<" means "less than or equal"(modulo 2**32).
Transmission Sequence Number空間は非常に大きいが有限(0~2^32-1)である。
有限であるため、Transmission Sequence Numberを扱う演算はmod 2^32をする必要がある。
この演算は0~2^32-1のサイクルとしてシーケンス番号を保持する。
moduloの計算には微妙な点があるため、値の比較には注意が必要である。
TSNを参照する際は"=<"は以下(mod 2^32)を意味する。
Comparisons and arithmetic on TSNs in this document SHOULD use Serial
Number Arithmetic as defined in [RFC1982] where SERIAL_BITS = 32.
RFC1982で定義されるSERIAL_BITS = 32のSerial Number
ArithmeticをTSNの比較や計算に使用すること。
An endpoint
SHOULD NOT transmit a DATA chunk with a TSN that is more
than 2**31 - 1 above the beginning TSN of its current send window.
Doing so will cause problems in comparing TSNs.
endpointは送信ウィンドウでTSN 2^31-1を超えるデータチャンクを送信しないこと。
そうするとTSNの計算で問題が生じる。
Transmission
Sequence Numbers wrap around when they reach 2**32 - 1.
That is, the next TSN a DATA chunk MUST use after transmitting TSN =
2*32 - 1 is TSN = 0.
TSNは2^32-1に達すると重複する。
つまり次のTSN=0はTSN=2^32-1を送信した後に使用すること。
Any arithmetic
done on Stream Sequence Numbers SHOULD use Serial
Number Arithmetic as defined in [RFC1982] where SERIAL_BITS = 16.
All other arithmetic and comparisons in this document use normal
arithmetic.
RFC1982で定義されるSERIAL_BITS = 16のSerial Number ArithmeticをStream Sequence
Numberを計算に使用すること。
このドキュメントのその他の計算、比較は通常の算術演算を使用する。
Stewart
Standards Track [Page 14]
RFC 4960 Stream Control Transmission Protocol September 2007
1.7. Changes from RFC 2960
SCTP was
originally defined in [RFC2960], which this document
obsoletes. Readers interested in the details of the various changes
that this document incorporates are asked to consult [RFC4460].
SCTPはこのドキュメントが廃止したRFC2960で定義された。
このドキュメントに組み込まれた変更の詳細はRFC4460を参照。
2. Conventions
The key words
"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
このドキュメントのキーワード"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL"はRFC2119で説明されるように解釈されること。
3. SCTP Packet Format
An SCTP packet
is composed of a common header and chunks. A chunk
contains either control information or user data.
SCTPパケットはcommon headerとチャンクで構成される。チャンクはcontrol
informationまたはユーザデータを含む。
The SCTP packet
format is shown below:
SCTPパケットフォーマットを下記に示す。
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Common Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Chunk #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Chunk #n |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Multiple chunks
can be bundled into one SCTP packet up to the MTU
size, except for the INIT, INIT ACK, and SHUTDOWN COMPLETE chunks.
These chunks MUST NOT be bundled with any other chunk in a packet.
See Section 6.10 for more details on chunk bundling.
INIT、INIT ACKとSHUTDOWN
COMPLETEのチャンク除き、MTUサイズまで1つのSCTPパケットにチャンクをbundleできる。
これらのチャンクはパケット内の他のチャンクをbundleしないこと。
chunk bundlingの詳細はSection 6.10参照。
If a user data
message doesn't fit into one SCTP packet it can be
fragmented into multiple chunks using the procedure defined in
Section 6.9.
ユーザメッセージが1つのSCTPパケットに収まらない場合、Section
6.9のプロシージャを用いて複数のチャンクにfragmentできる。
All integer
fields in an SCTP packet MUST be transmitted in network
byte order, unless otherwise stated.
SCTPパケット内のすべての整数フィールドはネットワークバイトオーダーで送信されること。
Stewart Standards Track [Page 15]
RFC 4960 Stream Control Transmission Protocol September 2007
3.1. SCTP Common
Header Field Descriptions
SCTP Common Header Format
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port Number | Destination Port Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Verification Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Source Port Number: 16 bits (unsigned integer)
This is the
SCTP sender's port number. It can be used by the
receiver in combination with the source IP address, the SCTP
destination port, and possibly the destination IP address to
identify the association to which this packet belongs. The port
number 0 MUST NOT be used.
SCTP送信者のポート番号。
パケットのassociatinを識別するため送信元、宛先のIPアドレス、SCTP宛先ポートとともに受信者に使用される。
ポート番号0は使わないこと。
Destination Port Number: 16 bits (unsigned integer)
This is the
SCTP port number to which this packet is destined.
The receiving host will use this port number to de-multiplex the
SCTP packet to the correct receiving endpoint/application. The
port number 0 MUST NOT be used.
パケットの宛先ポート番号。
受信側が受信エンドポイント/アプリケーションにSCTPパケットをde-multiplexするために使用する。
ポート番号0は使わないこと。
Verification Tag: 32 bits (unsigned integer)
The receiver
of this packet uses the Verification Tag to validate
the sender of this SCTP packet. On transmit, the value of this
Verification Tag MUST be set to the value of the Initiate Tag
received from the peer endpoint during the association
initialization, with the following exceptions:
パケットの受信者が送信者のSCTPパケットの検証のためにVerification Tagを使用する。
送信時、Verification Tagはassociation initialization中にピアエンドポイントから受信したInitiate
Tagの値を設定すること。
下記の例外は除く。
- A packet containing an INIT chunk MUST have a zero Verification
Tag.
INITチャンクを含むパケットはzero Verification Tagであること。
- A packet
containing a SHUTDOWN COMPLETE chunk with the T bit
set MUST have the Verification Tag copied from the packet with
the SHUTDOWN ACK chunk.
T bitのSHUTDOWN COMPLETEチャンクを含むパケットは、SHUTDOWN
ACKチャンクパケットからコピーされたVerification Tagであること。
- A packet
containing an ABORT chunk may have the verification
tag copied from the packet that caused the ABORT to be sent.
For details see Section 8.4 and Section 8.5.
ABORTチャンクを含むパケットは、ABORTが送信される原因となったパケットからコピーされたVerification
Tagをコピーすること。
詳細はSection 8.4、8.5を参照。
Stewart Standards Track [Page
16]
RFC 4960 Stream Control Transmission Protocol September 2007
An INIT chunk MUST
be the only chunk in the SCTP packet carrying it.
INITチャンクはこれを送信するSCTPの唯一のチャンクであること。
Checksum: 32 bits (unsigned integer)
This field
contains the checksum of this SCTP packet. Its
calculation is discussed in Section 6.8. SCTP uses the CRC32c
algorithm as described in Appendix B for calculating the checksum.
SCTPパケットのチェックサム。
計算方法はSection 6.8で述べる。
SCTPはCRC32アルゴリズム(Appendix B)を用いる。
3.2. Chunk Field Descriptions
The figure below
illustrates the field format for the chunks to be
transmitted in the SCTP packet. Each chunk is formatted with a Chunk
Type field, a chunk-specific Flag field, a Chunk Length field, and a
Value field.
SCTPパケットで送信されるチャンクフィールドフォーマットを示す。
各チャンクはChunk Type、Chunk-specific Flag、Chunk Length、Chunk
Valueから構成される。
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Chunk Type | Chunk Flags | Chunk Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Chunk Value /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Chunk Type: 8 bits (unsigned integer)
This field
identifies the type of information contained in the
Chunk Value field. It takes a value from 0 to 254. The value of
255 is reserved for future use as an extension field.
Chunk Value filedの情報の種類を識別する。
0~254をとる。255は今後の拡張のための予約。
The values of
Chunk Types are defined as follows:
Chunk Typesは下記のように定義される。
ID Value
Chunk Type
----- ----------
0 - Payload Data (DATA)
1 - Initiation (INIT)
2 - Initiation Acknowledgement (INIT ACK)
3 - Selective Acknowledgement (SACK)
4 - Heartbeat Request (HEARTBEAT)
5 - Heartbeat Acknowledgement (HEARTBEAT ACK)
6 - Abort (ABORT)
7 - Shutdown (SHUTDOWN)
8 - Shutdown Acknowledgement (SHUTDOWN ACK)
9 - Operation Error (ERROR)
10 - State Cookie (COOKIE ECHO)
11 - Cookie Acknowledgement (COOKIE ACK)
Stewart Standards Track [Page 17]
RFC 4960 Stream Control Transmission Protocol September 2007
12 -
Reserved for Explicit Congestion Notification Echo
(ECNE)
13 - Reserved for Congestion Window Reduced (CWR)
14 - Shutdown Complete (SHUTDOWN COMPLETE)
15 to 62 - available
63 - reserved for IETF-defined Chunk Extensions
64 to 126 - available
127 - reserved for IETF-defined Chunk Extensions
128 to 190 - available
191 - reserved for IETF-defined Chunk Extensions
192 to 254 - available
255 - reserved for IETF-defined Chunk Extensions
Chunk Types
are encoded such that the highest-order 2 bits specify
the action that must be taken if the processing endpoint does not
recognize the Chunk Type.
Chunk Typeは上位2bitがエンドポイントがChunk
Typeを認識しない場合のアクションを指定するためにエンコードされる。
00 - Stop
processing this SCTP packet and discard it, do not
process any further chunks within it.
SCTPパケット処理を停止し、破棄する。Chunkを処理しない。
01 - Stop
processing this SCTP packet and discard it, do not
process any further chunks within it, and report the
unrecognized chunk in an 'Unrecognized Chunk Type'.
SCTPパケット処理を停止し、破棄する。Chunkを処理せず、Unrecognized Chunk
TypeとしてChunkを報告する。
10 - Skip
this chunk and continue processing.
Chunkをスキップし、処理を継続する。
11 - Skip
this chunk and continue processing, but report in an
ERROR chunk using the 'Unrecognized Chunk Type' cause of
error.
Chunkをスキップし、処理を継続する。Unrecognized Chunk Typeを使用したERROR
Chunkで報告する。
Note: The
ECNE and CWR chunk types are reserved for future use of
Explicit Congestion Notification (ECN); see Appendix A.
ECNEとCWR chunkタイプはECN(明示的輻輳通知)で使用するためreserveされている。Appendix
A参照。
Chunk Flags: 8 bits
The usage of
these bits depends on the Chunk type as given by the
Chunk Type field. Unless otherwise specified, they are set to 0
on transmit and are ignored on receipt.
Chunk Type fieldで指定されたChunk typeに応じて使用される。
特に規定がない場合、送信側で0が設定され、受信側で無視される。
Chunk Length: 16 bits (unsigned integer)
This value
represents the size of the chunk in bytes, including
the Chunk Type, Chunk Flags, Chunk Length, and Chunk Value fields.
Therefore, if the Chunk Value field is zero-length, the Length
field will be set to 4. The Chunk Length field does not count any
chunk padding.
Chunk Value、Chunk Length、Chunk Flags、Chunk Typesのバイト単位のchunkサイズを表す。
Chunk Value fieldが0の場合、Lengthは4に設定される。
Chunk Lengthはchunk paddingをカウントしない。
Stewart Standards Track [Page 18]
RFC 4960 Stream Control Transmission Protocol September 2007
Chunks
(including Type, Length, and Value fields) are padded out
by the sender with all zero bytes to be a multiple of 4 bytes
long. This padding MUST NOT be more than 3 bytes in total. The
Chunk Length value does not include terminating padding of the
chunk. However, it does include padding of any variable-length
parameter except the last parameter in the chunk. The receiver
MUST ignore the padding.
Chunkは4バイトの倍数であるために、0バイトで送信者によってpaddingされる。
paddingは3バイトを超えてはいけない。
Chunk Lengthはchunkの終端のpaddingを含んでいない。
受信者はpaddingを無視すること。
Note: A
robust implementation should accept the chunk whether or
not the final padding has been included in the Chunk Length.
robustな実装ではpaddingがChunk Lengthに含まれているか確認する必要がある。
Chunk Value: variable length
The Chunk
Value field contains the actual information to be
transferred in the chunk. The usage and format of this field is
dependent on the Chunk Type.
Chunk Value fieldはChunkで送信される情報が含まれている。
使用方法とフォーマットはChunk Typeに依存する。
The total length
of a chunk (including Type, Length, and Value
fields) MUST be a multiple of 4 bytes. If the length of the chunk is
not a multiple of 4 bytes, the sender MUST pad the chunk with all
zero bytes, and this padding is not included in the Chunk Length
field. The sender MUST NOT pad with more than 3 bytes. The receiver
MUST ignore the padding bytes.
chunkの合計のサイズは4バイトの倍数であること。
4バイトの倍数でない場合、送信者は0バイトでpaddingし、paddingはChunk Lengthに含めないこと。
送信者は3バイトより多くをpaddingしてはいけない。
受信者はpaddingバイトを無視すること。
SCTP-defined
chunks are described in detail in Section 3.3. The
guidelines for IETF-defined chunk extensions can be found in Section
14.1 of this document.
SCTP定義のchunkはSection 3.3で詳しく述べる。
IETF定義のchunk拡張はSection 14.1で述べる。
3.2.1. Optional/Variable-Length Parameter Format
Chunk values of
SCTP control chunks consist of a chunk-type-specific
header of required fields, followed by zero or more parameters. The
optional and variable-length parameters contained in a chunk are
defined in a Type-Length-Value format as shown below.
SCTP control chunkのChunk
valueは0以上のパラメータの必須フィールドのchunk-type-specificヘッダで構成される。
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Parameter Type | Parameter Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Parameter Value /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Stewart Standards Track [Page 19]
RFC 4960 Stream Control Transmission Protocol September 2007
Chunk Parameter Type: 16 bits (unsigned integer)
The Type
field is a 16-bit identifier of the type of parameter.
It takes a value of 0 to 65534.
パラメータのタイプの16bit識別子。0~65534。
The value of
65535 is reserved for IETF-defined extensions.
Values other than those defined in specific SCTP chunk
descriptions are reserved for use by IETF.
65535はIETF定義の拡張のためのreserve。
特定のSCTP chunkで定義された値以外はIETFで使用するためreserveされている。
Chunk Parameter Length: 16 bits (unsigned integer)
The Parameter
Length field contains the size of the parameter in
bytes, including the Parameter Type, Parameter Length, and
Parameter Value fields. Thus, a parameter with a zero-length
Parameter Value field would have a Length field of 4. The
Parameter Length does not include any padding bytes.
Parameter Type、Parameter Length、Parameter Valueのバイト数。
Parameter Valueが0ならばLengthは4。
Parameter Lengthはpadding byteを含まない。
Chunk Parameter Value: variable length
The Parameter
Value field contains the actual information to be
transferred in the parameter.
Parameter Valueはパラメータで転送される情報を含む。
The total
length of a parameter (including Type, Parameter Length,
and Value fields) MUST be a multiple of 4 bytes. If the length of
the parameter is not a multiple of 4 bytes, the sender pads the
parameter at the end (i.e., after the Parameter Value field) with
all zero bytes. The length of the padding is not included in the
Parameter Length field. A sender MUST NOT pad with more than 3
bytes. The receiver MUST ignore the padding bytes.
パラメータ長の合計は4バイトの倍数であること。
4バイトの倍数でない場合、送信者は最後(Parameter Valueの後)に0でpaddingする。
padding長はParameter Lengthに含めない。
送信者は3バイトより多くのpaddingをしてはいけない。
受信者はpaddingを無視すること。
The Parameter
Types are encoded such that the highest-order 2 bits
specify the action that must be taken if the processing endpoint
does not recognize the Parameter Type.
Parameter Typeが認識できない場合にParameter
Typeの上位2ビットでやるべきアクションが定義されている。
00 - Stop
processing this parameter; do not process any further
parameters within this chunk.
パラメータの処理を停止し、パラメータを処理しない。
01 - Stop
processing this parameter, do not process any further
parameters within this chunk, and report the unrecognized
parameter in an 'Unrecognized Parameter', as described in
Section 3.2.2.
パラメータパケット処理を停止し、パラメータを処理しない。Unrecognized
Parameterとしてパラメータを報告する。Section 3.2.2参照。
10 - Skip
this parameter and continue processing.
パラメータをスキップし、処理を継続する。
11 - Skip
this parameter and continue processing but report the
unrecognized parameter in an 'Unrecognized Parameter', as
described in Section 3.2.2.
パラメータをスキップし、処理を継続する。Unrecognized parameterで報告する。Section
3.2.2参照。
Stewart Standards Track [Page 20]
RFC 4960 Stream Control Transmission Protocol September 2007
Please note that
in all four cases, an INIT ACK or COOKIE ECHO chunk
is sent. In the 00 or 01 case, the processing of the parameters
after the unknown parameter is canceled, but no processing already
done is rolled back.
4つのケースでINIT ACK、COOKIE ECHOが送信されるのに注意してください。
00 or 01のケースでは、キャンセルされ、未実施の処理はロールバックされない。
The actual SCTP
parameters are defined in the specific SCTP chunk
sections. The rules for IETF-defined parameter extensions are
defined in Section 14.2. Note that a parameter type MUST be unique
across all chunks. For example, the parameter type '5' is used to
represent an IPv4 address (see Section 3.3.2.1). The value '5' then
is reserved across all chunks to represent an IPv4 address and MUST
NOT be reused with a different meaning in any other chunk.
SCTPのパラメータはSCTP chunk sectionで定義される。
IETF定義のパラメータ拡張はSection 14.2で定義される。
すべてのchunkでParameter Typeは一意であること。
例えば、Parameter Type 5はIPv4アドレスを表すために使用される。(Section 3.3.1.1参照)
5はIPv4 アドレスを表すためにreserveされており、他のchunkで異なる意味の仕様をしてはいけない。
3.2.2. Reporting of Unrecognized Parameters
If the receiver
of an INIT chunk detects unrecognized parameters and
has to report them according to Section 3.2.1, it MUST put the
'Unrecognized Parameter' parameter(s) in the INIT ACK chunk sent in
response to the INIT chunk. Note that if the receiver of the INIT
chunk is NOT going to establish an association (e.g., due to lack of
resources), an 'Unrecognized Parameter' would NOT be included with
any ABORT being sent to the sender of the INIT.
INIT chunkの受信者がunrecognized parameterを検出し、Section 3.2.1に従って報告する場合、INIT
chunkの応答としてINIT ACK chunkに"Unrecognized Parameter" parametersを付与すること。
INIT chunkの受信者がassociationの確立していない場合(リソース不足などにより)、送信者へのABORTには"Unrecognized
Parameter"が含まれていないことに注意せよ。
If the receiver of an INIT ACK chunk detects unrecognized parameters
and has to report them according to Section 3.2.1, it SHOULD bundle
the ERROR chunk containing the 'Unrecognized Parameters' error cause
with the COOKIE ECHO chunk sent in response to the INIT ACK chunk.
If the receiver of the INIT ACK cannot bundle the COOKIE ECHO chunk
with the ERROR chunk, the ERROR chunk MAY be sent separately but not
before the COOKIE ACK has been received.
INIT ACK chunkの受信者が認識できないパラメータを検出し、Section 3.2.1に従って報告する場合、INIT ACK
chunの応答のCOOKIE ECHO chunkで"Unrecognized Parameters"を含むERROR
chunkをbundleすること。
INIT ACKの受信者がERROR chunkをCOOKIE ECHO chunkにbundleできない場合、ERROR chunkはCOOKIE
ACKの受信前に分けて送られてもよい。
Note: Any time a
COOKIE ECHO is sent in a packet, it MUST be the
first chunk.
COOKIE ECHOをパケットで送信するときはそれは最初のchunkであること。
3.3. SCTP Chunk Definitions
This section
defines the format of the different SCTP chunk types.
SCTP chunk typeのフォーマットを定義する。
Stewart Standards Track [Page 21]
RFC 4960 Stream Control Transmission Protocol September 2007
3.3.1. Payload Data
(DATA) (0)
The following
format MUST be used for the DATA chunk:
下記のフォーマットはDATAチャンクに使うこと。
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0 | Reserved|U|B|E| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TSN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Stream Identifier S | Stream Sequence Number n |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Protocol Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ User Data (seq n of Stream S) /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Reserved: 5 bits
Should be set
to all '0's and ignored by the receiver.
0を設定し、受信者は無視すること
U bit: 1 bit
The
(U)nordered bit, if set to '1', indicates that this is an
unordered DATA chunk, and there is no Stream Sequence Number
assigned to this DATA chunk. Therefore, the receiver MUST ignore
the Stream Sequence Number field.
順不同のbit。1が設定された場合、DATA chunkは順不同であることを示し、SSNはDATA chunkはない。
そのため、受信者はSSN fieldを無視すること。
After
reassembly (if necessary), unordered DATA chunks MUST be
dispatched to the upper layer by the receiver without any attempt
to reorder.
必要ならばreassemblyの後、順不同のDATA chunkは順序制御なしに受信者によって上位レイヤに転送されること。
If an
unordered user message is fragmented, each fragment of the
message MUST have its U bit set to '1'.
順不同のユーザデータがフラグメントされた場合、各フラグメントはU bitに1がセットされる。
B bit: 1 bit
The
(B)eginning fragment bit, if set, indicates the first fragment
of a user message.
fragmentの開始bit。セットされた場合、ユーザメッセージの最初のフラグメントを示す。
E bit: 1 bit
The (E)nding
fragment bit, if set, indicates the last fragment of
a user message.
fragmentの最終bit。セットされた場合、ユーザメッセージの最後のフラグメントを示す。
Stewart Standards Track [Page 22]
RFC 4960 Stream Control Transmission Protocol September 2007
An unfragmented
user message shall have both the B and E bits set to
'1'. Setting both B and E bits to '0' indicates a middle fragment of
a multi-fragment user message, as summarized in the following table:
fragmentされていないユーザメッセージはB、E bitに1を設定すること。
BとEに0が設定されることは、フラグメントの中間であることを示す。
要約を下記のテーブルに示す。
B E
Description
============================================================
| 1 0 | First piece of a fragmented user message |
+----------------------------------------------------------+
| 0 0 | Middle piece of a fragmented user message |
+----------------------------------------------------------+
| 0 1 | Last piece of a fragmented user message |
+----------------------------------------------------------+
| 1 1 | Unfragmented message |
============================================================
| Table 1: Fragment Description Flags |
============================================================
When a user
message is fragmented into multiple chunks, the TSNs are
used by the receiver to reassemble the message. This means that the
TSNs for each fragment of a fragmented user message MUST be strictly
sequential.
ユーザメッセージが複数のチャンクにfragmentされる場合、TSNがメッセージをreassembleするために受信者に使用される。
これはfragmentされたユーザメッセージの各fragmentのTSNは正確に連続していることを意味している。
Length: 16 bits (unsigned integer)
This field
indicates the length of the DATA chunk in bytes from
the beginning of the type field to the end of the User Data field
excluding any padding. A DATA chunk with one byte of user data
will have Length set to 17 (indicating 17 bytes).
このfieldにはpaddingを除いたType filedの開始からUser Data fieldの最後までのバイト数で、DATA
chunkの長さを表す。
1バイトのユーザデータをもつDATA chunkはLengthに17が設定される。(17byteを表す)
A DATA chunk
with a User Data field of length L will have the
Length field set to (16 + L) (indicating 16+L bytes) where L MUST
be greater than 0.
Lが0より大きいとき、長さLのUser Data fieldをもつDATA chunkはLength filedに16 + Lが設定される。(16
+ Lbyteを示す。)
TSN: 32 bits (unsigned integer)
This value
represents the TSN for this DATA chunk. The valid
range of TSN is from 0 to 4294967295 (2**32 - 1). TSN wraps back
to 0 after reaching 4294967295.
DATA chunkのTSNを表す。
TSNの範囲は0~4294967295である。
TSNは4294967295に達すると0に戻る。
Stream Identifier S: 16 bits (unsigned integer)
Identifies
the stream to which the following user data belongs.
user dataが属するstreamを識別する。
Stream Sequence Number n: 16 bits (unsigned integer)
This value
represents the Stream Sequence Number of the following
user data within the stream S. Valid range is 0 to 65535.
Stream Sのuser dataのSSNを表す。範囲は0~65535。
Stewart Standards Track [Page 23]
RFC 4960 Stream Control Transmission Protocol September 2007
When a user
message is fragmented by SCTP for transport, the same
Stream Sequence Number MUST be carried in each of the fragments of
the message.
SCTPにfragmentされた場合、同じSSNがメッセージの各fragmentに設定されること。
Payload Protocol Identifier: 32 bits (unsigned integer)
This value
represents an application (or upper layer) specified
protocol identifier. This value is passed to SCTP by its upper
layer and sent to its peer. This identifier is not used by SCTP
but can be used by certain network entities, as well as by the
peer application, to identify the type of information being
carried in this DATA chunk. This field must be sent even in
fragmented DATA chunks (to make sure it is available for agents in
the middle of the network). Note that this field is NOT touched
by an SCTP implementation; therefore, its byte order is NOT
necessarily big endian. The upper layer is responsible for any
byte order conversions to this field.
この値はapplicationか上位レイヤにより指定されたprotocol identifierを表す。
この値は上位レイヤから渡され、peerに送られる。
この識別子はSCTPでは使われないが、DATA chunkで送信される情報のタイプを識別するためnetwork entity、peer
applicationで使われる。
このfiledはfragmentのDATA chunkにでも送信されること。
このfieldはSCTPに関与されないことに注意せよ。バイトオーダーはビッグエンディアンである必要はない。
上位レイヤはこのfieldのバイトオーダー変換を担う。
The value 0
indicates that no application identifier is specified
by the upper layer for this payload data.
0はこのpayload dataに上位レイヤによってapplication
identifierが指定されていないことを示す。
User Data: variable length
This is the
payload user data. The implementation MUST pad the
end of the data to a 4-byte boundary with all-zero bytes. Any
padding MUST NOT be included in the Length field. A sender MUST
never add more than 3 bytes of padding.
payload user data。4-byte boundaryのためall 0でpaddingすること。
paddingはLength fieldに含めないこと。
送信者は3byteを超えるpaddingを加えないこと。
3.3.2. Initiation (INIT) (1)
This chunk is
used to initiate an SCTP association between two
endpoints. The format of the INIT chunk is shown below:
このchunkは2つのエンドポイント間のSCTP associationの初期化に使用する。
INIT chunkのformatを下記に示す。
Stewart Standards Track [Page 24]
RFC 4960 Stream Control Transmission Protocol September 2007
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 1 | Chunk Flags | Chunk Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Initiate Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertised Receiver Window Credit (a_rwnd) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Outbound Streams | Number of Inbound Streams |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Initial TSN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Optional/Variable-Length Parameters /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The INIT chunk
contains the following parameters. Unless otherwise
noted, each parameter MUST only be included once in the INIT chunk.
INIT chunkには下記のパラメータが含まれている。
各パラメータは一つだけINIT chunkに含まれること。
Fixed
Parameters Status
----------------------------------------------
Initiate Tag Mandatory
Advertised Receiver Window Credit Mandatory
Number of Outbound Streams Mandatory
Number of Inbound Streams Mandatory
Initial TSN Mandatory
Variable
Parameters Status Type Value
-------------------------------------------------------------
IPv4 Address (Note 1) Optional 5
IPv6 Address(Note 1) Optional 6
Cookie Preservative Optional 9
Reserved for ECN Capable (Note 2) Optional 32768 (0x8000)
Host Name Address (Note 3) Optional 11
Supported Address Types (Note 4) Optional 12
Note 1: The INIT
chunks can contain multiple addresses that can be
IPv4 and/or IPv6 in any combination.
Note 1: INIT chunkはIPv4 and/or IPv6の任意の組み合わせで複数のアドレスを含むことができる。
Note 2: The ECN
Capable field is reserved for future use of Explicit
Congestion Notification.
ECN Capable filedはExplicit Congestion
Notificationの今後の仕様のためのreserve領域。
Note 3: An INIT
chunk MUST NOT contain more than one Host Name
Address parameter. Moreover, the sender of the INIT MUST NOT combine
any other address types with the Host Name Address in the INIT. The
receiver of INIT MUST ignore any other address types if the Host Name
Address parameter is present in the received INIT chunk.
INIT chunkは複数のHost Name Addressパラメータを含んではいけない。
INITの送信者はINITのHost Name Addressを他のアドレスタイプと組み合わせてはいけない。
Host Name Addressパラメータが受信したINIT chunkに存在する場合、INITの受信者は他のアドレスタイプを無視すること。
Stewart Standards Track [Page
25]
RFC 4960 Stream Control Transmission Protocol September 2007
Note 4: This
parameter, when present, specifies all the address types
the sending endpoint can support. The absence of this parameter
indicates that the sending endpoint can support any address type.
このパラメータが存在する場合、送信エンドポイントがサポートできるすべてのアドレスタイプを指定する。
このパラメータが存在しない場合、送信エンドポイントが任意のアドレスタイプをサポートできることを示す。
IMPLEMENTATION
NOTE: If an INIT chunk is received with known
parameters that are not optional parameters of the INIT chunk, then
the receiver SHOULD process the INIT chunk and send back an INIT ACK.
The receiver of the INIT chunk MAY bundle an ERROR chunk with the
COOKIE ACK chunk later. However, restrictive implementations MAY
send back an ABORT chunk in response to the INIT chunk.
INIT chunkがINIT chunkのオプションでない既知のパラメータとともに受信された場合、受信側はINIT chunkを処理し、INIT
ACKを送信すること。
INIT chunkの受信者はCOOKIE ACK chunでERROR chunkをbundleしてもよい。
実装の制限では、INIT chunkに対してABORT chunkを返す。
The Chunk Flags
field in INIT is reserved, and all bits in it should
be set to 0 by the sender and ignored by the receiver. The sequence
of parameters within an INIT can be processed in any order.
INITのChunk Flag fieldはreserveであり、送信者によって0が設定され、受信者は無視する。
INITのパラメータは順序は任意の順序で処理できる。
Initiate Tag: 32 bits (unsigned integer)
The receiver
of the INIT (the responding end) records the value of
the Initiate Tag parameter. This value MUST be placed into the
Verification Tag field of every SCTP packet that the receiver of
the INIT transmits within this association.
INITの受信者はInitiate Tag パラメータの値を記録する。
この値はINITの受信者がassociation中に送信するすべてのSCTPパケットのVerification Tag
fieldに設定すること。
The Initiate
Tag is allowed to have any value except 0. See
Section 5.3.1 for more on the selection of the tag value.
Initiate Tagは0以外の値をもつこと。
tag valueの選択についてはSection 5.2.1参照。
If the value
of the Initiate Tag in a received INIT chunk is found
to be 0, the receiver MUST treat it as an error and close the
association by transmitting an ABORT.
受信したINIT chunkのInitiate
Tagの値に0を見つけた場合、受信者はエラーとして扱い、ABORTを送信してassociationを終了する。
Advertised
Receiver Window Credit (a_rwnd): 32 bits (unsigned
integer)
This value
represents the dedicated buffer space, in number of
bytes, the sender of the INIT has reserved in association with
this window. During the life of the association, this buffer
space SHOULD NOT be lessened (i.e., dedicated buffers taken away
from this association); however, an endpoint MAY change the value
of a_rwnd it sends in SACK chunks.
INITの送信者がassociationのwindow用に確保しているバッファ領域のバイト数。
Assosiationの存続中、このバッファスペースは減らされないこと(バッファはassosiationから取り除かれないこと)。ただし、エンドポイントはSACK
chunkで送るa_rwndの値を変更してもよい。
Number of Outbound Streams (OS): 16 bits (unsigned integer)
Defines the
number of outbound streams the sender of this INIT
chunk wishes to create in this association. The value of 0 MUST
NOT be used.
INIT chunkの送信者がassociationで作成するoutbound stream数を定義する。
0は使用してはいけない。
Note: A
receiver of an INIT with the OS value set to 0 SHOULD
abort the association.
OSが0に設定されたINITの受信者はassociationをabortすること。
Stewart Standards Track [Page 26]
RFC 4960 Stream Control Transmission Protocol September 2007
Number of Inbound Streams (MIS): 16 bits (unsigned integer)
Defines the
maximum number of streams the sender of this INIT
chunk allows the peer end to create in this association. The
value 0 MUST NOT be used.
INIT chunkの送信者がpeer側で作成されるassociationで許可する最大のstream数を定義する。
0を使用しないこと。
Note: There
is no negotiation of the actual number of streams but
instead the two endpoints will use the min(requested, offered).
See Section 5.1.1 for details.
Stream数のネゴシエーションはしないが、代わりに2エンドポイントはmin(requested,
offered)を使用する。詳細はSection 5.1.1参照。
Note: A
receiver of an INIT with the MIS value of 0 SHOULD abort
the association.
MISが0のINITの受信者はassociationをabortすること。
Initial TSN (I-TSN): 32 bits (unsigned integer)
Defines the
initial TSN that the sender will use. The valid range
is from 0 to 4294967295. This field MAY be set to the value of
the Initiate Tag field.
送信側が使用するTSNの初期値を定義する。
範囲は0~4294967295。このフィールドはInitiate Tag fieldの値を設定してもよい。
3.3.2.1. Optional/Variable-Length Parameters in INIT
The following
parameters follow the Type-Length-Value format as
defined in Section 3.2.1. Any Type-Length-Value fields MUST come
after the fixed-length fields defined in the previous section.
下記のパラメータはSection 3.2.1で定義されたType-Length-Valueフォーマットに従うこと。
Type-Length-Value fieldは前のSectionで定義された固定長フィールドの後にあること。
IPv4 Address Parameter (5)
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 5 | Length = 8 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv4 Address: 32 bits (unsigned integer)
Contains an
IPv4 address of the sending endpoint. It is binary
encoded.
送信側のIPv4アドレスが含まれる。binary encodeである。
Stewart
Standards Track [Page 27]
RFC 4960 Stream Control Transmission Protocol September 2007
IPv6 Address Parameter (6)
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 6 | Length = 20 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| IPv6 Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 Address: 128 bits (unsigned integer)
Contains an
IPv6 [RFC2460] address of the sending endpoint. It is
binary encoded.
送信側のIPv4アドレスが含まれる。binary encodeである。
Note: A
sender MUST NOT use an IPv4-mapped IPv6 address [RFC4291],
but should instead use an IPv4 Address parameter for an IPv4
address.
送信者はIPv4マップ IPv6アドレスを使用してはいけない。
IPv4でIPv4 address parameterを使用すること。
Combined with
the Source Port Number in the SCTP common header,
the value passed in an IPv4 or IPv6 Address parameter indicates a
transport address the sender of the INIT will support for the
association being initiated. That is, during the life time of
this association, this IP address can appear in the source address
field of an IP datagram sent from the sender of the INIT, and can
be used as a destination address of an IP datagram sent from the
receiver of the INIT.
SCTP common headerのSource Port Numberと組み合わされ、Transport addressのIPv4 or
IPv6 アドレスパラメータの値はassociationを示す。
すなわち、associationの生存時間中、このIPアドレスはINIT送信者の送信したIP
datagramの送信アドレスとなり、INIT受信側から送信されたIP datagramの宛先アドレスとして使用される。
More than one
IP Address parameter can be included in an INIT
chunk when the INIT sender is multi-homed. Moreover, a multi-
homed endpoint may have access to different types of network;
thus, more than one address type can be present in one INIT chunk,
i.e., IPv4 and IPv6 addresses are allowed in the same INIT chunk.
INIT送信側がmulti-homeの場合、複数のIPアドレスパラメータがINIT chunkに含まれる。
さらに、multi-home エンドポイントはネットワークの異なるタイプのアクセスがあってもよい。
従って、一つのINIT chunkに複数のアドレスタイプが存在してよい。すなわちIPv4、IPv6アドレスが同一のINIT
chunkであることが許容される。
If the INIT contains at least one IP Address parameter, then the
source address of the IP datagram containing the INIT chunk and
any additional address(es) provided within the INIT can be used as
destinations by the endpoint receiving the INIT. If the INIT does
not contain any IP Address parameters, the endpoint receiving the
INIT MUST use the source address associated with the received IP
datagram as its sole destination address for the association.
INITが1つ以上のIPアドレスを含む場合、INIT内のaddress、INITを含むIP datagramのsource
addressがINITを受信したエンドポイントに宛先として使用される。
INITがIP アドレスパラメータを含んでいない場合、INITを受信したエンドポイントはassociationに受信したIP
datagramの送信元IPアドレスを宛先アドレスとして使用すること。
Note that not
using any IP Address parameters in the INIT and INIT
ACK is an alternative to make an association more likely to work
across a NAT box.
INIT、INIT ACKのIPアドレスパラメータを使用していないが、associationがNAT
boxを経由するためである。
Stewart Standards Track [Page 28]
RFC 4960 Stream Control Transmission Protocol September 2007
Cookie Preservative (9)
The sender of
the INIT shall use this parameter to suggest to the
receiver of the INIT for a longer life-span of the State Cookie.
INITの送信側はState Cookieのlife-spanをINITの受信側に提示するため、このパラメータを使用すること。
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 9 | Length = 8 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Suggested Cookie Life-Span Increment (msec.) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Suggested Cookie Life-Span Increment: 32 bits (unsigned integer)
This
parameter indicates to the receiver how much increment in
milliseconds the sender wishes the receiver to add to its default
cookie life-span.
default cookie life-spanに受信側が追加するms単位の増分を受信側に示す。
This optional
parameter should be added to the INIT chunk by the
sender when it reattempts establishing an association with a peer
to which its previous attempt of establishing the association
failed due to a stale cookie operation error. The receiver MAY
choose to ignore the suggested cookie life-span increase for its
own security reasons.
このオプションパラメータは送信者がピアとのcookieが古くなったエラーによりassociationを確立するとき、INIT
chunkに追加すること。
受信側はセキュリティのため、提示されたcookie life-span増加を無視してもよい。
Host Name Address (11)
The sender of
INIT uses this parameter to pass its Host Name (in
place of its IP addresses) to its peer. The peer is responsible for
resolving the name. Using this parameter might make it more likely
for the association to work across a NAT box.
INITの送信者はピアにHost Name(IP addressの代わり)を渡すために使われる。
ピアは名前解決をする必要がある。このパラメータの使用によりNAT boxを経由してassociationを作成できる。
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 11 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ Host Name /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Host Name: variable length
This field
contains a host name in "host name syntax" per RFC 1123
Section 2.1 [RFC1123]. The method for resolving the host name is
out of scope of SCTP.
このフィールドはRFC 1123 Section 2.1の"host name syntax"のhost nameが含まれる。
ホスト名の解決方法はSCTPのスコープ外である。
Stewart Standards Track [Page
29]
RFC 4960 Stream Control Transmission Protocol September 2007
Note: At
least one null terminator is included in the Host Name
string and must be included in the length.
1以上のnull終端がHost Name stringに含まれ、lengthに含まれること。
Supported Address Types (12)
The sender of
INIT uses this parameter to list all the address types
it can support.
INITの送信者はサポートできるすべてのアドレスタイプの一覧のためこのパラメータを使用する。
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 12 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Address Type #1 | Address Type #2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+
Address Type: 16 bits (unsigned integer)
This is
filled with the type value of the corresponding address
TLV (e.g., IPv4 = 5, IPv6 = 6, Host name = 11).
対応するアドレス TLVのタイプの値が設定される。
3.3.3. Initiation Acknowledgement (INIT ACK) (2)
The INIT ACK
chunk is used to acknowledge the initiation of an SCTP
association.
INIT ACK chunkはSCTP associationの開始をacknowledgeするために使用される。
The parameter
part of INIT ACK is formatted similarly to the INIT
chunk. It uses two extra variable parameters: The State Cookie and
the Unrecognized Parameter:
INIT ACKのパラメータはINIT chunkと同様に定義される。
2つの可変パラメータを使用する。State Cookie、Unrecognized Parameter。
Stewart Standards Track [Page 30]
RFC 4960 Stream Control Transmission Protocol September 2007
The format of the
INIT ACK chunk is shown below:
0
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 2 | Chunk Flags | Chunk Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Initiate Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertised Receiver Window Credit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Outbound Streams | Number of Inbound Streams |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Initial TSN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Optional/Variable-Length Parameters /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Initiate Tag: 32 bits (unsigned integer)
The receiver
of the INIT ACK records the value of the Initiate Tag
parameter. This value MUST be placed into the Verification Tag
field of every SCTP packet that the INIT ACK receiver transmits
within this association.
INIT ACKの受信者はInitiate Tagの値を記録する。
この値はassociationでINIT ACK受信者が送信するすべてのSCTPパケットのVerification
Tagに設定されること。
The Initiate
Tag MUST NOT take the value 0. See Section 5.3.1 for
more on the selection of the Initiate Tag value.
Initiate Tagは0を設定してはいけない。Initiate Tagの値についてはSection 5.3.1参照。
If the value
of the Initiate Tag in a received INIT ACK chunk is
found to be 0, the receiver MUST destroy the association
discarding its TCB. The receiver MAY send an ABORT for debugging
purpose.
受信したINIT ACK chunkのInitiate
Tagの値が0の場合、受信者はassociationを破棄すること。受信者はデバッグのためABORTを送ってもよい。
Advertised
Receiver Window Credit (a_rwnd): 32 bits (unsigned
integer)
This value
represents the dedicated buffer space, in number of
bytes, the sender of the INIT ACK has reserved in association with
this window. During the life of the association, this buffer
space SHOULD NOT be lessened (i.e., dedicated buffers taken away
from this association).
INIT ACKの送信者がassociationのwindow用に確保しているバッファ領域のバイト数。
Associationの存続中、このバッファスペースは減らされないこと(バッファはassosiationから取り除かれないこと)。
Stewart Standards Track [Page 31]
RFC 4960 Stream Control Transmission Protocol September 2007
Number of Outbound Streams (OS): 16 bits (unsigned integer)
Defines the
number of outbound streams the sender of this INIT ACK
chunk wishes to create in this association. The value of 0 MUST
NOT be used, and the value MUST NOT be greater than the MIS value
sent in the INIT chunk.
INIT ACK chunkの送信者がassociationで作成するoutbound stream数を定義する。
0は使用してはいけない。INIT chunkで送信されたMIS値より大きくしてはいけない。
Note: A
receiver of an INIT ACK with the OS value set to 0 SHOULD
destroy the association discarding its TCB.
OSに0が設定されたINIT ACKの受信者はassociationを削除し、TCBを破棄すること。
Number of Inbound Streams (MIS): 16 bits (unsigned integer)
Defines the
maximum number of streams the sender of this INIT ACK
chunk allows the peer end to create in this association. The
value 0 MUST NOT be used.
INIT ACK chunkの送信者がpeer側で作成されるassociationで許可する最大のstream数を定義する。
0を使用しないこと。
Note: There
is no negotiation of the actual number of streams but
instead the two endpoints will use the min(requested, offered).
See Section 5.1.1 for details.
Stream数のネゴシエーションはしないが、代わりに2エンドポイントはmin(requested,
offered)を使用する。詳細はSection 5.1.1参照。
Note: A
receiver of an INIT ACK with the MIS value set to 0 SHOULD
destroy the association discarding its TCB.
MISに0が設定されたINIT ACKの受信者はassociationを削除し、TCBを破棄すること。
Initial TSN (I-TSN): 32 bits (unsigned integer)
Defines the
initial TSN that the INIT ACK sender will use. The
valid range is from 0 to 4294967295. This field MAY be set to the
value of the Initiate Tag field.
INIT ACKの送信側が使用するTSNの初期値を定義する。
範囲は0~4294967295。このフィールドはInitiate Tag fieldの値を設定してもよい。
Fixed
Parameters Status
----------------------------------------------
Initiate Tag Mandatory
Advertised Receiver Window Credit Mandatory
Number of Outbound Streams Mandatory
Number of Inbound Streams Mandatory
Initial TSN Mandatory
Variable
Parameters Status Type Value
-------------------------------------------------------------
State Cookie Mandatory 7
IPv4 Address (Note 1) Optional 5
IPv6 Address (Note 1) Optional 6
Unrecognized Parameter Optional 8
Reserved for ECN Capable (Note 2) Optional 32768 (0x8000)
Host Name Address (Note 3) Optional 11
Note 1: The INIT
ACK chunks can contain any number of IP address
parameters that can be IPv4 and/or IPv6 in any combination.
INIT ACK chunkは任意の組み合わせでIPv4/IPv6アドレスを複数含むことができる。
Note 2: The ECN Capable field is reserved for future use of Explicit
Congestion Notification.
ECN fieldはExplicit Congestion
Notification(明示的輻輳通知)のためにreserveされている。
Stewart Standards Track [Page 32]
RFC 4960 Stream Control Transmission Protocol September 2007
Note 3: The INIT
ACK chunks MUST NOT contain more than one Host Name
Address parameter. Moreover, the sender of the INIT ACK MUST NOT
combine any other address types with the Host Name Address in the
INIT ACK. The receiver of the INIT ACK MUST ignore any other address
types if the Host Name Address parameter is present.
INIT ACK chunkは複数のHost Name Addressパラメータを含んではいけない。INIT ACKの送信者はINIT ACKのHost
Name Addressを他のアドレスタイプと組み合わせてはいけない。
Host Name Addressパラメータが受信したINIT ACK chunkに存在する場合、INIT
ACKの受信者は他のアドレスタイプを無視すること。
IMPLEMENTATION NOTE: An implementation MUST be prepared to receive an
INIT ACK that is quite large (more than 1500 bytes) due to the
variable size of the State Cookie AND the variable address list. For
example if a responder to the INIT has 1000 IPv4 addresses it wishes
to send, it would need at least 8,000 bytes to encode this in the
INIT ACK.
実装では、State Cookieと可変長アドレスリストのため1500byte以上のINIT ACKを受信する準備をすること。
例えば、INITの送信者が送りたいIPv4アドレスを1000個持っている場合、INIT
ACKでencodeすると8000byte以上は必要になる。
IMPLEMENTATION NOTE: If an INIT ACK chunk is received with known
parameters that are not optional parameters of the INIT ACK chunk,
then the receiver SHOULD process the INIT ACK chunk and send back a
COOKIE ECHO. The receiver of the INIT ACK chunk MAY bundle an ERROR
chunk with the COOKIE ECHO chunk. However, restrictive
implementations MAY send back an ABORT chunk in response to the INIT
ACK chunk.
INIT ACK chunkがINIT ACK chunkのオプションでない既知のパラメータとともに受信された場合、受信側はINIT ACK
chunkを処理し、COOKIE ECHOを送信すること。
INIT ACK chunkの受信者はCOOKIE ECHO chunkでERROR chunkをbundleしてもよい。
実装の制限では、INIT ACK chunkに対してABORT chunkを返してもよい。
In combination
with the Source Port carried in the SCTP common
header, each IP Address parameter in the INIT ACK indicates to the
receiver of the INIT ACK a valid transport address supported by the
sender of the INIT ACK for the life time of the association being
initiated.
SCTP common header内のSource Portと組み合わせ、INIT ACK内の各IP AddressパラメータはINIT
ACKの受信側にINIT ACKの送信者がサポートしてるassociationで有効なtransport addressを示す。
If the INIT ACK
contains at least one IP Address parameter, then the
source address of the IP datagram containing the INIT ACK and any
additional address(es) provided within the INIT ACK may be used as
destinations by the receiver of the INIT ACK. If the INIT ACK does
not contain any IP Address parameters, the receiver of the INIT ACK
MUST use the source address associated with the received IP datagram
as its sole destination address for the association.
INIT ACKが一つ以上IP Address paramterを含んでいる場合、INIT ACKに含まれるIPアドレスとIP
datagramの送信元アドレスはINIT ACKの受信側に宛先として使用されてよい。
INIT ACKがIP address paramterを含まない場合、INIT ACKの受信側は受信したIP
datagramの送信元IPアドレスをassociationの宛先アドレスとして使用すること。
The State Cookie
and Unrecognized Parameters use the Type-Length-
Value format as defined in Section 3.2.1 and are described below.
The other fields are defined the same as their counterparts in the
INIT chunk.
State CookieとUnrecognized Parmterは Section 3.2.1と下記に定義されたType-Length-Value
formatを使用する。
他のfiledはINIT chunkの対応するfieldと同様に定義される。
3.3.3.1. Optional or Variable-Length Parameters
State Cookie
Parameter Type Value: 7
Parameter Length: Variable size, depending on size of Cookie.
Stewart Standards Track [Page 33]
RFC 4960 Stream Control Transmission Protocol September 2007
Parameter Value:
This
parameter value MUST contain all the necessary state and
parameter information required for the sender of this INIT ACK to
create the association, along with a Message Authentication Code
(MAC). See Section 5.1.3 for details on State Cookie definition.
このparamterはINIT ACKの送信者がassociation作成に必要なparameterとstateをMessage
Authentication Code(MAC)とともに含むこと。
State Cookieの定義の詳細は5.1.3
Unrecognized Parameter:
Parameter Type Value: 8
Parameter Length: Variable size.
Parameter Value:
This
parameter is returned to the originator of the INIT chunk
when the INIT contains an unrecognized parameter that has a value
that indicates it should be reported to the sender. This
parameter value field will contain unrecognized parameters copied
from the INIT chunk complete with Parameter Type, Length, and
Value fields.
INITが送信側に報告するべき未認識のパラメータを含んでいる場合、このパラメータはINIT chunkの送信側に返される。
このparamter value field はParamter Type、Length、ValueをINIT
chunkからコピーした未認識のパラメータを含む。