Network Working Group                                    C. Bestler, Ed.
Request for Comments: 5043                                      Neterion
Category: Standards Track                                R. Stewart, Ed.
                                                     Cisco Systems, Inc.
                                                            October 2007
              Stream Control Transmission Protocol (SCTP)
                 Direct Data Placement (DDP) Adaptation

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.

この文書は、インターネットコミュニティのためのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態と状態への「インターネット公式プロトコル標準」(STD 1)の最新版を参照してください。このメモの配布は無制限です。



This document specifies an adaptation layer to provide a Lower Layer Protocol (LLP) service for Direct Data Placement (DDP) using the Stream Control Transmission Protocol (SCTP).


Table of Contents


   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Conventions  . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  Motivation . . . . . . . . . . . . . . . . . . . . . . . . . .  5
   4.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
   5.  Data Formats . . . . . . . . . . . . . . . . . . . . . . . . .  5
     5.1.  Adaptation Layer Indicator . . . . . . . . . . . . . . . .  5
     5.2.  Payload Data Chunks  . . . . . . . . . . . . . . . . . . .  6
       5.2.1.  DDP Source Sequence Number (DDP-SSN) . . . . . . . . .  6
       5.2.2.  DDP Segment Chunk  . . . . . . . . . . . . . . . . . .  7
       5.2.3.  DDP Stream Session Control . . . . . . . . . . . . . .  7
   6.  DDP Stream Sessions  . . . . . . . . . . . . . . . . . . . . .  8
     6.1.  Sequencing . . . . . . . . . . . . . . . . . . . . . . . .  9
     6.2.  Legal Sequence: Active/Passive Session Accepted  . . . . .  9
     6.3.  Legal Sequence: Active/Passive Session Rejected  . . . . .  9
     6.4.  Legal Sequence: Active/Passive Session Non-ULP Rejected  . 10
     6.5.  ULP-Specific Sequencing  . . . . . . . . . . . . . . . . . 10
     6.6.  Other Sequencing Rules . . . . . . . . . . . . . . . . . . 10
   7.  SCTP Endpoints . . . . . . . . . . . . . . . . . . . . . . . . 11
     7.1.  Adaptation Layer Indication Restriction  . . . . . . . . . 11
     7.2.  Multihoming Implications . . . . . . . . . . . . . . . . . 11
   8.  Number of Streams  . . . . . . . . . . . . . . . . . . . . . . 12
   9.  Fragmentation  . . . . . . . . . . . . . . . . . . . . . . . . 12
   10. Sequenced Unordered Operation  . . . . . . . . . . . . . . . . 13
   11. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . 13
     11.1. Association Initialization . . . . . . . . . . . . . . . . 13
     11.2. Chunk Bundling . . . . . . . . . . . . . . . . . . . . . . 14
     11.3. Association Termination  . . . . . . . . . . . . . . . . . 14
   12. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 15
   13. Security Considerations  . . . . . . . . . . . . . . . . . . . 15
   14. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 16
   15. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 16
   16. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16
     16.1. Normative References . . . . . . . . . . . . . . . . . . . 16
     16.2. Informative References . . . . . . . . . . . . . . . . . . 16
1. Introduction
1. はじめに

This document describes a method to adapt Direct Data Placement [RFC5041] to Stream Control Transmission Protocol (SCTP) [RFC4960].


Some implementations may include this adaptation layer within their SCTP implementations to obtain maximum performance, but the behavior of SCTP will be unaffected. An SCTP layer used solely by this adaptation layer is able to take certain optimizations based on the limited subset of SCTP capabilities used. In order to allow optimization for these implementations, we specify the use of the new adaptation layer indication as defined in [RFC5061]

一部の実装では、最大のパフォーマンスを得るために、彼らのSCTP実装内でこのアダプテーション層を含んでいてもよいが、SCTPの動作が影響を受けません。このアダプテーション層でのみ使用SCTP層が使用SCTP機能の限られたサブセットに基づいて特定の最適化を取ることが可能です。 [RFC5061]で定義されるように、これらの実装のための最適化を可能にするために、我々は、新しい適応層指標の使用を指定します

1.1. Conventions
1.1. 表記

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", および "OPTIONAL" はRFC 2119 [RFC2119]に記載されているように解釈されます。

2. Definitions

DDP - See Direct Data Placement Protocol.

DDP - 直接データ配置プロトコルを参照してください。

DDP Endpoint - The logical sender/receiver of DDP Segments. An SCTP stream pair is not assumed to have a DDP Endpoint. DDP Segments may only be sent once a DDP Endpoint has been assigned to an SCTP stream pair by a local interface.

DDPエンドポイント - DDPセグメントの論理的な送信者/受信機。 SCTPストリームのペアがDDPエンドポイントを持つことが想定されていません。 DDPエンドポイントがローカルインタフェースによってSCTPストリームペアに割り当てられた後にDDPセグメントのみを送信することができます。

DDP Source Stream Sequence Number (DDP-SSN) - A stream-specific sequence number assigned by the adaptation layer for each SCTP Data Chunk sent. This is the order that chunks were submitted to SCTP, no matter in what order they are actually sent or received.

DDPソース・ストリーム・シーケンス番号(DDP-SSN) - 送信された各SCTPデータチャンクのための適合層によって割り当てられたストリーム固有のシーケンス番号。これはチャンクがSCTP、彼らが実際に送信または受信されているものを順番に関係なくに提出された順序です。

DDP Segment - The smallest unit of data transfer for the DDP protocol. It includes a DDP Header and ULP Payload (if present). A DDP Segment should be sized to fit within the Lower Layer Protocol MULPDU (Marker PDU Aligned (MPA) Upper Layer PDU).

DDPセグメント - DDPプロトコルのデータ転送の最小単位。これは、DDPヘッダとULPペイロードを(存在する場合)を含みます。 DDPセグメントは、下位層プロトコルMULPDU(マーカーPDU同盟(MPA)上位層PDU)に収まるように大きさにすべきです。

DDP Segment Chunk - An SCTP Payload Data Chunk that encapsulates the DDP-SSN and a DDP Segment.

DDPセグメントチャンク - DDP-SSNとDDPセグメントをカプセル化SCTPペイロードデータチャンク。

DDP Stream - A sequence of DDP Segments whose ordering is defined by the LLP. For SCTP, a DDP stream maps directly to a bidirectional pair of SCTP streams with the same Stream IDs. Note that DDP has no ordering guarantees between DDP streams.

DDPストリーム - 発注LLPによって定義されるDDPセグメントのシーケンス。 SCTPのために、DDPストリームは、SCTPの双方向ペアが同じストリームIDとストリームに直接マッピングします。 DDPは、DDPストリームの間には順序の保証がないことに注意してください。

DDP Stream Session - A single pairing of DDP Endpoints over a DDP stream that lasts from an Initiation message through the Termination message(s).

DDPストリームセッション - 終了メッセージ(単数または複数)を介して開始メッセージから続くDDPストリーム上DDPエンドポイントの単一のペアリング。

DDP Stream Session Control Message - A message that is used to control the association of the DDP Endpoint with the DDP stream.

DDPストリームセッション制御メッセージ - DDPストリームとDDPエンドポイントのアソシエーションを制御するために使用されるメッセージ。

Direct Data Placement Protocol (DDP) - A wire protocol that supports Direct Data Placement by associating explicit memory buffer placement information with the LLP payload units.

直接データ配置プロトコル(DDP) - LLPペイロードユニットを明示的メモリバッファ配置情報を関連付けることにより、直接データ配置をサポートワイヤプロトコル。

Lower Layer Protocol (LLP) - In the context of DDP, the protocol layer beneath RDMA that provides a reliable transport service. The SCTP DDP adaption is one of the initially defined LLPs for DDP.

下位レイヤプロトコル(LLP) - DDPの文脈では、信頼できるトランスポートサービスを提供するRDMA下のプロトコル層。 SCTP DDP適応はDDPのために最初に定義LLPSの一つです。

Protection Domain - A common local interface convention to control which Steering Tags (STags) are valid with which DDP Endpoints. Under this convention, both the Steering Tag and DDP Endpoint are created within the context of a Protection Domain, and the Steering Tag may only be enabled for DDP Endpoints created under the same Protection Domain.

保護ドメイン - ステアリング・タグ(スタッグスが)どのDDPエンドポイントで有効であるかを制御するための共通のローカルインターフェース規則。この規則の下では、ステアリングタグとDDPエンドポイントの両方が保護ドメインのコンテキスト内で作成され、ステアリングタグは、同じ保護ドメインの下に作成DDPエンドポイントのために有効にすることができます。

RDMA - Remote Direct Memory Access.

RDMA - リモートダイレクトメモリアクセス。

RNIC - RDMA Network Interface Card.

RNIC - RDMAネットワークインターフェイスカード。

SCTP association - A protocol relationship between two SCTP endpoints. An SCTP association supports multiple SCTP streams.

SCTPアソシエーション - 2つのSCTPエンドポイント間プロトコル関係。 SCTPアソシエーションは、複数のSCTPストリームをサポートしています。

SCTP Data Chunk - An SCTP Chunk used to convey Payload Data. There can be multiple Chunks within each SCTP packet. Other Chunks are used to control the SCTP Association.

SCTPデータチャンク - ペイロードデータを伝達するために使用さSCTPチャンク。各SCTPパケット内の複数のチャンクが存在する場合があります。他のチャンクはSCTP協会を制御するために使用されています。

SCTP endpoint - The logical sender/receiver of SCTP packets. On a multihomed host, an SCTP endpoint is represented to its peers as a combination of an SCTP port number and a set of eligible destination transport addresses to which SCTP packets can be sent.

SCTP終点 - SCTPパケットの論理的な送信者/受信機。マルチホームホスト上で、SCTP終点は、SCTPポート番号、SCTPパケットが送信可能な対象先輸送アドレスのセットの組み合わせとして、そのピアに表されています。

SCTP Stream - A unidirectional logical channel established from one to another associated SCTP endpoint. There can be multiple SCTP streams within each SCTP association. An SCTP stream is used to form one direction of a DDP stream.

SCTPストリーム - 別の関連SCTPエンドポイントに一つから確立された一方向の論理チャネル。各SCTPアソシエーション内に複数のSCTPストリームが存在する場合があります。 SCTPストリームはDDPストリームの一方向を形成するために使用されます。

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.

送信シーケンス番号(TSN) - SCTPによって内部で使用される32ビットのシーケンス番号。一つのTSNは、その受領を確認し、重複配達を検出するために、受信したSCTP終点を可能にするために、ユーザー・データを含む各チャンクに取り付けられています。

Upper Layer Protocol (ULP) - In the context of RDMA protocol specifications, this is the layer using RDMA services. Typically, this is an application or middleware. A primary goal of RDMA protocols is to enable direct transfer of payload to/from ULP Buffers.

上位層プロトコル(ULP) - RDMAプロトコル仕様の文脈では、これは、RDMAサービスを使用する層です。典型的には、これは、アプリケーションやミドルウェアです。 RDMAプロトコルの主な目的は、ULPバッファから/へのペイロードの直接転送を可能にすることです。

3. Motivation

This document specifies an adaptation layer which fulfills the requirements of a Lower Layer Protocol (LLP) for DDP using a specific subset of SCTP capabilities.


The defined protocol is intended to be implementable over existing SCTP stacks, while clearly defining what portions of SCTP are required to enable an implementation to be optimized specifically to support DDP.


4. Overview

The adaptation layer uses a pair of like-numbered SCTP streams within an SCTP Association to provide a reliable DDP stream between two DDP Endpoints. Except as specifically noted, each DDP Segment submitted by the DDP layer is encoded as a single unordered SCTP Data Chunk. In addition to the DDP Segment, the Data Chunk also contains a sequence number (DDP-SSN) that reflects the order in which DDP submitted the segments for that stream.

アダプテーション層は、二つのDDPエンドポイント間で信頼性の高いDDPストリームを提供するために、SCTPアソシエーション内のような番号のSCTPストリームの対を使用します。特記以外は、DDP層によって提出される各DDPセグメントは、単一の順序付けられていないSCTPデータチャンクとして符号化されます。 DDPセグメントに加えて、データチャンクはまた、DDPは、そのストリームのセグメントを送信する順序を反映するシーケンス番号(DDP-SSN)を含みます。

A DDP Stream Session is defined by DDP Stream Session Control Chunks that manage the state of the DDP Stream Session. These Chunks dynamically bind DDP Endpoints to the DDP Stream Session, and DDP Segment Chunks are used to reliably deliver DDP Segments with the session.


5. Data Formats
5.1. Adaptation Layer Indicator
5.1. アダプテーションレイヤインジケータ

The DDP/SCTP adaptation layer uses all streams within an SCTP association. An SCTP Association that has had the DDP Adaptation Indication negotiated will carry only SCTP Data Chunks as defined in this document.

DDP / SCTPアダプテーション層は、SCTPアソシエーション内のすべてのストリームを使用します。この文書で定義されているようDDP適応表示が交渉してきたSCTP協会はSCTPデータチャンクを運ぶでしょう。

It is presumed that the handling of incoming data chunks for DDP-enabled associations is sufficiently different than for routine SCTP associations that it is undesirable to require support for mixing DDP and non-DDP streams in a single association. More than a single association is required if an application desires to utilize both DDP and non-DDP traffic with the same remote host.


We define an Adaptation Indication that MUST appear in the INIT or INIT-ACK with the following format as defined in [RFC5061].


   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 =0xC006           |    Length = Variable          |
   |                    Adaptation Indication                      |

Adaptation Indication:


The following value has been assigned for DDP.


DDP - 0x00000001

DDP - 0x00000001に

5.2. Payload Data Chunks
5.2. ペイロードデータチャンク

The DDP SCTP adaptation uses two types of SCTP Payload Data Chunks, differentiated by the Payload Protocol Identifier:

DDP SCTP適応は、ペイロードプロトコル識別子によって区別SCTPペイロードデータチャンクの2種類を使用します。

DDP Segment Chunks are used to reliably deliver DDP Segments sent between DDP Endpoints.


DDP Stream Session Control Messages are used to establish and tear down DDP Stream Sessions, specifically by controlling the binding of DDP Endpoints with SCTP streams.


Payload Protocol Identifier:


The following value are defined for DDP in this document and have been assigned by IANA:


         DDP Segment Chunk          - 16
         DDP Stream Session Control - 17
5.2.1. DDP Source Sequence Number (DDP-SSN)
5.2.1. DDPソースシーケンス番号(SSN-DDP)

All SCTP Payload Data Chunks used by this adaptation layer include a DDP Source Sequence Number (DDP-SSN). The DDP-SSN tracks the sequence in which the messages were submitted to the SCTP layer for the SCTP stream in use. The DDP-SSN MUST have the same value that the SCTP Stream Sequence Number (SSN) would have been assigned had ordered SCTP Payload Data Chunks been used rather than unordered.

このアダプテーション層で使用されるすべてのSCTPペイロードデータチャンクはDDPソースシーケンス番号(SSN-DDP)が含まれます。 DDP-SSNは、メッセージが使用されているSCTPストリームのためのSCTP層に提出された順序を追跡します。 DDP-SSNは、SCTPストリームシーケンス番号(SSN)が順不同ではなく、使用されてSCTPペイロードデータチャンクを命じた割り当てられているのと同じ値を持つ必要があります。

The rationale for specifying the DDP-SSN is as follows:


o The SCTP Stream Sequence Number (SSN) is not suitable for this purpose because all messages defined by this document use unordered Payload Data Chunks to ensure prompt delivery from the receiving SCTP layer.

この文書の使用無秩序ペイロードデータチャンクによって定義されたすべてのメッセージが受信SCTP層からの迅速な配達を確保するためのO SCTPストリームシーケンス番号(SSN)は、この目的には適していません。

o The SCTP Transmission Sequence Number (TSN) is not suitable for determining the original order of Data Chunks within a stream. The sending SCTP layer is allowed to optimize the transmission sequence of unordered Data Chunks to encourage Chunk Bundling, or for other purposes.

O SCTP送信シーケンス番号(TSN)は、ストリーム内のデータチャンクの元の順序を決定するには適していません。送信SCTP層は、チャンクがバンドル、または他の目的のために奨励するために順序付けられていないデータチャンクの送信順序を最適化することができます。

5.2.2. DDP Segment Chunk
5.2.2. DDPセグメントチャンク
   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
   |          DDP-SSN              |         DDP Segment           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
   |                                                               |
   |                         ...                                   |

DDP Segments are as defined in [RFC5041]. The DDP Segment Chunk serves the same purpose as the MPA [RFC5044] Upper Layer PDU (MULPDU) in that it carries DDP Segments over a reliable protocol with added sequencing information.

[RFC5041]で定義されるようにDDPセグメントです。 DDPセグメントチャンクは、それが追加のシーケンシング情報を信頼できるプロトコル上DDPセグメントを運ぶことでMPA [RFC5044]上位層PDU(MULPDU)と同じ目的を果たします。

5.2.3. DDP Stream Session Control
5.2.3. DDPストリームセッション制御
   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
   |          DDP-SSN              |    Function Code              |
   |            Private Data (Dependent on Function Code)          |
   |                         ...                                   |

The following function code values are defined for DDP in this document:


         DDP Stream Session Initiate         - 0x001
         DDP Stream Session Accept           - 0x002
         DDP Stream Session Reject           - 0x003
         DDP Stream Session Terminate        - 0x004

ULP-supplied Private Data MUST be included for DDP Stream Session Initiate, DDP Stream Session Accept, and DDP Stream Session Reject messages. However, the ULP supplied Private DATA MAY be of zero length.


Private Data length MUST NOT exceed 512 bytes in any message.


Private Data MUST NOT be included in the DDP Stream Session Terminate message.


Received DDP Stream Session Control messages SHOULD be reported to the ULP. If reported, any supplied Private Data MUST be available for the ULP to examine.


The DDP/SCTP adaptation layer MAY limit the number of Session Initiate requests that it has submitted to the ULP. When a DDP Stream Session Initiate cannot be forwarded to the ULP due to such a limit, the adaptation layer MUST respond with a DDP Stream Session Terminate message.

DDP / SCTPアダプテーション層は、セッションの数が、それはULPに提出した要求を開始制限される場合があります。 DDPストリームセッションが開始するとこのような制限にULPに転送することができない、アダプテーション層は、DDPストリームセッションメッセージを終了で応じなければなりません。

6. DDP Stream Sessions
6. DDPストリームセッション

A DDP Endpoint is the logical sender/receiver of DDP Segments. A DDP stream connects two DDP Endpoints using a matched pair of SCTP streams having the same SCTP Stream Identifiers.

DDPエンドポイントは、DDPセグメントの論理的な送信者/受信機です。 DDPストリームは、同一のSCTPストリーム識別子を有するSCTPストリームのペアを使用して2つのDDPエンドポイントを接続します。

A DDP Stream Session defines the sequence of Data Chunks exchanged between two DDP Endpoints over a DDP stream that has a distinct beginning and end as defined in the following section. Data Chunks from one DDP Stream Session are never carried over to the next session. Each Data Chunk unambiguously belongs to exactly one session. The DDP-SSNs assigned to the Data Chunks for a session MUST NOT have any gaps.

DDPストリーム・セッション、データチャンクのシーケンスは次のセクションで定義されるような別個の開始と終了を有するDDPストリームにわたって2つのDDPエンドポイント間で交換定義します。 1 DDPストリームのセッションからのデータチャンクは、次のセッションに持ち越されることはありません。各データチャンクは、明確に正確に一つのセッションに属します。セッションのためのデータチャンクに割り当てられたDDP-のSSNは、任意のギャップを持ってはいけません。

The local interface MAY dynamically associate a DDP Endpoint with the DDP stream based upon the initial exchanges of a DDP Session, and dynamically terminate that association at the session's end. Alternately, a specialized local interface could simply statically map DDP Endpoints to DDP streams.


Conventionally, local interfaces for RDMA have deferred the selection of the DDP Endpoint until after the ULP decides to accept an RDMA connection request. But that is a local interface choice and not a wire protocol requirement.


A DDP stream is associated with at most one Protection Domain during a single DDP Stream Session. On the passive side, the association is typically deferred until the DDP Stream Session Accept message.


6.1. Sequencing
6.1. シーケンシング

The DDP-SSN is reset to zero at the beginning of each DDP Stream Session.


The normative sequence for considering Payload Data Chunks within a given session is based upon each Data Chunk's DDP-SSN. When considered in this normative sequence, all sessions MUST conform to one of the patterns defined in this section.


If the adaptation layer receives a Payload Data Chunk that conforms to none of the enumerated legal patterns, the DDP Stream Session MUST be terminated.


6.2. Legal Sequence: Active/Passive Session Accepted
6.2. 正当なシーケンス:アクティブ/パッシブセッション受理

In this DDP Stream Session sequence, one DDP Endpoint assumes the active role in requesting a DDP Stream Session, which the other side accepts.


Active side sends a DDP Stream Session Initiate message.


Passive side sends a DDP Stream Session Accept message.


Each side may then send zero or more DDP Segments with increasing DDP-SSNs, subject to any flow control imposed by other protocol layers.


The final User Data Chunk for each side MAY be a DDP Stream Terminate. At least one side MUST send a DDP Stream Terminate. Note that this would follow any RDMAP Terminate message, which to the adaptation layer is simply another DDP Segment.


6.3. Legal Sequence: Active/Passive Session Rejected
6.3. 正当なシーケンス:アクティブ/パッシブセッションが拒否されました

DDP Stream Sessions allow each party to send a single non-payload message before the other end commits specific resources to the session. This allows each end to determine which resources are to be used, and how they are to be configured, or even if the session should be granted.


These decisions MAY be influenced by the need to assign a specific Protection Domain, to determine how many RDMA Read Credits are required, or to determine how many receive operations the ULP should enable.


Because of these or other factors, the passive side MAY choose to reject a DDP Stream Session Request. This results in the following legal sequence:


Active side sends a DDP Stream Session Initiate message.


Passive side sends a DDP Stream Session Reject message.


A DDP Stream Session Reject message MUST NOT be sent unless the rejection is at the direction of the ULP.


6.4. Legal Sequence: Active/Passive Session Non-ULP Rejected
6.4. 正当なシーケンス:アクティブ/パッシブセッション非ULP拒否

Acceptance or rejection of DDP Stream Session Initiate messages SHOULD be under the control of the ULP. This MAY require passing an event to the ULP. There MUST be a finite limit on the number of such requests that are pending a ULP decision. When more session requests are received, the passive side MUST respond to the Initiate message with a DDP Stream Terminate Message.

受諾またはDDPストリームセッションの拒否は、メッセージがULPの制御の下でなければなりません開始します。これはULPにイベントを渡す必要になる場合があります。 ULPの決定を保留しているこのような要求の数に有限の制限があるに違いありません。より多くのセッション要求を受信すると、パッシブ側は、DDPストリームで開始メッセージに応答しなければならないメッセージを終了します。

6.5. ULP-Specific Sequencing
6.5. ULP固有のシーケンス

An implementation MAY choose to support additional ULP-specific sequences, but MUST NOT do so unless requested to do so by the ULP.


A defined ULP MUST be able to operate using only the defined mandatory session sequences. Any additional sequences must be used only for optional optimizations.


6.6. Other Sequencing Rules
6.6. その他のシーケンシングルール

A DDP Stream Session Control message MUST NOT be sent if it may be received before a prior DDP Stream Session Control message within the same DDP Stream Session.


An active side of a DDP Stream Session MUST NOT send a DDP Segment that might be received before the DDP Stream Session Initiate message.


This MAY be determined by SCTP acking of the Data Chunk used to carry the DDP Stream Session Initiate message, or by receipt of a responsive DDP Stream Session Control message.


A DDP Stream Identifier MUST NOT be reused for another DDP Stream Session while any Data Chunk from a prior session might be outstanding.


7. SCTP Endpoints
7. SCTPエンドポイント
7.1. Adaptation Layer Indication Restriction
7.1. アダプテーションレイヤの表示制限

The local interface MUST allow the ULP to specify an SCTP endpoint to use a specific Adaptation Indication. It MAY require the ULP to do so.


Once an endpoint decides on its acceptable Adaptation Indication(s), it SHOULD terminate all requests to establish an association with any different Adaptation Indication.


An SCTP implementation MAY choose to accept association requests for a given SCTP endpoint only until one association for the endpoint has been established. At that point, it MAY choose to restrict all further associations for the same endpoint to use the same Adaptation Indication.


7.2. Multihoming Implications
7.2. マルチホーミングへの影響

SCTP allows an SCTP endpoint to be associated with multiple IP addresses, potentially representing different interface devices. Distribution of the logic for a single DDP stream across multiple input devices can be very undesirable, resulting in complex cache coherency challenges. Therefore, the local interface MAY restrict DDP-enabled SCTP endpoints to a single IP address, or to a set of IP addresses that are all assigned to the same input device ("RNIC").


The default binding of a DDP-enabled SCTP endpoint SHOULD NOT cover more than a single IP address unless doing so results in neither additional bus traffic nor duplication of memory registration resources. This will frequently result in a different default than for SCTP endpoints that are not DDP enabled.


Applications MAY choose to avoid using out-of-band methods for communicating the set of IP addresses used by an SCTP endpoint when there is potential confusion as to the intended scope of the SCTP endpoint. For example, assuming the SCTP endpoint consists of all IP addresses Advertised by DNS may work for a general purpose SCTP endpoint but not a DDP-enabled one.


Even when multihoming is supported, ULPs are cautioned that they SHOULD NOT use ULP control of the source address in an attempt to load-balance a stream across multiple paths. A receiving DDP/SCTP implementation that chooses to support multihoming SHOULD optimize its design on the assumption that multihoming will be used for network fault tolerance, and not to load-balance between paths. This is consistent with recommended SCTP practices.

マルチホーミングがサポートされている場合でも、のULPは、それらが負荷バランスをとるストリームを複数の経路を横切っての試みで、送信元アドレスのULPコントロールを使用しないことを警告されています。マルチホーミングをサポートすることを選択した受信DDP / SCTP実装はマルチホーミングネットワークフォールトトレランスのために使用されることを前提に、その設計を最適化する必要があり、パス間のバランスをロードしません。これは推奨SCTP慣行と一致しています。

8. Number of Streams

DDP streams are bidirectional. They are always composed by pairing the inbound and outbound SCTP streams with the same SCTP Stream Identifier.


The adaptation layer should request the maximum number of SCTP streams it will wish to use over the lifetime of the association. SCTP streams must still be bound to DDP Endpoints, and a DDP-enabled SCTP association does not support ordered Data Chunks. Therefore, the mere existence of an SCTP stream is unlikely to require significant supporting resources.

アダプテーション層は、SCTPの最大数は、それが関連の寿命にわたって使用したいであろうストリームを要求すべきです。 SCTPストリームはまだDDPエンドポイントにバインドする必要があり、DDP対応のSCTPアソシエーションは、注文したデータチャンクをサポートしていません。したがって、SCTPストリームの単なる存在は重要なサポートリソースを必要とすることはほとんどありません。

This mapping uses an SCTP association to carry one or more DDP streams. Each DDP stream will be mapped to a pair of SCTP streams with the same SCTP stream number. The adaptation MUST initialize all of its SCTP associations with the same number of inbound and outbound streams.


9. Fragmentation

A DDP/SCTP Receiver already deals with fragmentation at both the IP and DDP layers. Therefore, use of SCTP layer segmenting will be avoided for most cases.

DDP / SCTPレシーバはすでに両方のIPとDDP層に断片化を扱っています。したがって、SCTP層のセグメント化の使用は、ほとんどの場合のために回避されます。

As a Lower Layer Protocol (LLP) for DDP, the SCTP adaptation layer MUST inform the DDP layer of the maximum DDP Segment size that will be supported. This should be the largest value that can be supported without use of IP or SCTP fragmentation, or 516 bytes, whichever is larger.


A minimum of 516 bytes is required to allow a DDP Stream Session Control Message with 512 bytes of Private Data.


SCTP data chunk fragmentation MUST NOT be used unless the alternative is IP fragmentation.


The SCTP adaptation layer SHOULD set the maximum DDP Segment size below the theoretical maximum in order to allow bundling of Control Chunks in the same SCTP packet.


The SCTP adaptation layer MUST reject DDP Segments that are larger than the maximum size specified.


10. Sequenced Unordered Operation

The adaptation layer MUST use the Unordered option on all Data Chunks (U Flag set to one). The SCTP layer is expected to deliver unordered Data Chunks without delay.

アダプテーション層は、すべてのデータチャンク(Uフラグが1に設定されている)に順不同オプションを使用する必要があります。 SCTP層は、遅滞なく順不同データチャンクを提供することが期待されます。

Because DDP employs unordered SCTP delivery, the receiver MUST NOT rely upon the SCTP Transmission Sequence Number (TSN) to imply ordering of DDP Segments. The fact that the SCTP Data Chunk for a DDP Segment is prior to the cumulative ack point does not guarantee that all prior DDP segments have been placed. The SCTP sender is not obligated to transmit unordered Data Chunks in the order presented.

DDPは順不同SCTPの配信を採用しているため、受信機は、DDPセグメントの順序を暗示するSCTP送信シーケンス番号(TSN)に依存してはなりません。 DDPセグメントのためのSCTPデータチャンクは累積ACKポイント前であるという事実は、すべての以前のDDPセグメントが配置されていることを保証するものではありません。 SCTP送信者は、提示順に順序付けられていないデータチャンクを送信する義務を負いません。

The DDP-SSN can be used without special logic to determine the submission sequence when the maximum number of in-flight messages is less than 32768. This also applies if the sending SCTP accepts no more than 32767 Data Chunks for a single stream without assigning TSNs.


If SCTP does accept more than 32768 Data chunks for a single stream without assigning TSNs, the sending DDP must simply refrain from sending more than 32767 Data Chunks for a single stream without acknowledgment. Note that it MUST NOT rely upon ULP flow control for this purpose. Typical ULP flow control will deal exclusively with untagged messages, not with DDP segments.


The receiver MAY perform a validity check on received DDP-SSNs to ensure that any gap could be accounted for by unreceived Data Chunks. Implementations SHOULD NOT allocate resources on the assumption that DDP-SSNs are valid without first performing such a validity check. An invalid DDP-SSN MAY result in termination of the DDP stream.


11. Procedures
11.1. Association Initialization
11.1. 協会の初期化

At the startup of an association, a DDP/SCTP adaptation layer MUST include an adaptation layer indication in its INIT or INIT-ACK (as defined in Section 5.1). After the exchange of the initial first two SCTP chunks (INIT and INIT-ACK), an endpoint MUST verify and inspect the Adaptation Indication and compare it to the following table to determine proper action.

関連の起動時に、DDP / SCTPアダプテーション層は、INITまたはINIT-ACK(セクション5.1で定義されるように)中のアダプテーション層の指示を含まなければなりません。最初の最初の二つのSCTPチャンク(INITとINIT-ACK)の交換後、エンドポイントは、検証及び検査適応表示を、適切なアクションを決定するために、次の表にそれを比較しなければなりません。

Indication | Action type | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | This indicates that the peer DOES NOT NONE | support ANY DDP or RDMA adaptation, and thus | RDMA and DDP procedures MUST NOT be | performed upon this association. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | This indicates that the peer DOES support DDP | the DDP/SCTP adaptation layer defined here. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | This indicates that the peer DOES NOT ANY-OTHER | support the DDP adaptation, and thus Indication | DDP procedures MUST NOT be performed | upon this association. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

表示|アクションタイプ| ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++ |これは、ピアがNONEをしないないことを示し| ANY DDPまたはRDMA適応をサポートするため、| RDMAおよびDDP手続きはしているはずがありません|この関連付けにより行いました。 ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++ |これは、ピアがDDPをサポートしていないことを示し| DDP / SCTPアダプテーション層は、ここで定義されました。 ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++ |これは、ピアがANY-他にいないことを示し| DDP適応をサポートするため、表示| DDP手続きが行われてはなりません|この関連付けに依存します。 ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++

An implementation MAY require that all associations for a given SCTP endpoint be placed in the same mode.


The local interface MAY allow the ULP to accept only requests to establish an association in a specified mode.


11.2. Chunk Bundling
11.2. チャンクバンドル

SCTP allows multiple Data Chunks to be bundled in a single SCTP packet. Data chunks containing DDP Segments with untagged messages SHOULD NOT be delayed to facilitate bundling. Data chunks containing DDP Segments with tagged messages will generally be full sized, and hence not subject to bundling. However, partial-size tagged messages MAY be delayed, as they are frequently followed by a short untagged message.


11.3. Association Termination
11.3. 協会の終了

Termination of an SCTP Association due to errors should be handled at the SCTP layer. The RDMAP-defined RDMAP Terminate Message SHOULD NOT be sent on each DDP stream when a determination has been made to terminate an SCTP association. Sending that message on each SCTP stream could severely delay the termination of the association.


The local interface SHOULD notify all consumers of DDP streams when the underlying SCTP stream has been terminated.


Other RDMAP-defined Terminate Messages MUST be generated as specified when a DDP stream is terminated. Note that with the SCTP mapping, termination of a DDP Stream does not mandate termination of the Association.

DDPストリームが終了したときに指定されるように他のRDMAP定義メッセージを終了が発生しなければなりません。 SCTPマッピングで、DDPストリームの終了が協会の終了を強制しないことに注意してください。

12. IANA Considerations
12. IANAの考慮事項

This document defines a new SCTP Adaptation Layer Indication codepoint for DDP (0x00000001). [RFC5061] creates the registry from which this codepoint has been assigned.

この文書では、DDP(0​​x00000001の)のための新しいSCTPアダプテーションレイヤの表示コードポイントを定義します。 [RFC5061]は、このコードポイントが割り当てされたレジストリを作成します。

This document also defines two new SCTP Payload Protocol Identifiers (PPIDs). RFC 4960 [RFC4960] creates the registry from which these identifiers have been assigned. The following values have been assigned:

この文書では、2つの新しいSCTPペイロードプロトコル識別子(PPIDs)を定義します。 RFC 4960 [RFC4960]は、これらの識別子が割り当てられているから、レジストリを作成します。以下の値が割り当てられています:

         DDP Segment Chunk           - 16
         DDP Stream Session Control  - 17
13. Security Considerations

Any direct placement of memory could pose a significant security risk if adequate local controls are not provided. These threats are addressed in the appropriate DDP [RFC5041], RDMA [RFC5040], or Security [RFC5042] documents. This document does not add any additional security risks over those found in RFC 4960 [RFC4960].

十分なローカルコントロールが提供されていない場合は、メモリの任意の直接的な配置は、重大なセキュリティリスクをもたらす可能性があります。これらの脅威は、適切なDDP [RFC5041]、RDMA [RFC5040]、またはセキュリティ[RFC5042]の文書で扱われています。この文書は、RFC 4960 [RFC4960]で見つけたものの上に追加のセキュリティリスクを追加しません。

The IPsec requirements for Remote Direct Data Placement (RDDP) are based on the version of IPsec specified in RFC 2401 [RFC2401] and related RFCs, as profiled by RFC 3723 [RFC3723], despite the existence of a newer version of IPsec specified in RFC 4301 [RFC4301] and related RFCs. One of the important early applications of the RDDP protocols is their use with iSCSI iSER [RFC5046]; RDDP's IPsec requirements follow those of IPsec in order to facilitate that usage by allowing a common profile of IPsec to be used with iSCSI and the RDDP protocols. In the future, RFC 3723 may be updated to the newer version of IPsec; the IPsec security requirements of any such update should apply uniformly to iSCSI and the RDDP protocols.

RFC 3723 [RFC3723]でプロファイルなどの遠隔直接データ配置(RDDP)のIPsec要件は、RFCで指定されたIPSecの新しいバージョンが存在するにもかかわらず、RFC 2401 [RFC2401]および関連するRFCで指定されたIPSecのバージョンに基づいています4301 [RFC4301]および関連するRFC。 RDDPプロトコルの重要な初期の用途の一つは、iSCSIのiSER [RFC5046]との使用です。 RDDPのIPsecの要件は、IPsecの共通プロファイルを可能にすることにより、その使用を容易にするためのIPsecのものをiSCSIとRDDPプロトコルで使用するに従​​ってください。将来的には、RFC 3723は、IPsecの新しいバージョンに更新することができます。そのような更新のIPsecセキュリティ要件は、iSCSIとRDDPプロトコルに均一に適用されるべきです。

Additional requirements apply to security for RDDP over SCTP, due to the use of SCTP as the transport protocol. An implementation of IPsec for RDDP over SCTP:

その他の要件により、トランスポートプロトコルとしてSCTPを使用することに、SCTP上RDDPのセキュリティに適用されます。 SCTPオーバーRDDPのIPsecの実装:

1) MUST support IPsec functionality for SCTP equivalent to the IPsec functionality for TCP that is required by RFC 3723,

1)、RFC 3723によって要求されるTCPのIPsec機能にSCTP同等のIPsec機能をサポートしなければなりません

2) SHOULD support the same level of IPsec functionality for SCTP and TCP unless there is no support for TCP, and


3) MUST support at least the level of protocol and port selector functionality for SCTP that is supported for TCP.


14. Contributors

Many thanks to our contributors who have spent many hours reading and reviewing keeping us straight: Sukanta Ganguly an independent consultant, Vivek Kashyap of IBM, Jim Pinkerton of Microsoft, and Hemal Shah of Broadcom. Thanks for all your hard work.


15. Acknowledgments

The authors would like to thank the following people that have provided comments and input: Stephen Bailey, David Black, Douglas Otis, Allyn Romanow, and Jim Williams.


16. References
16.1. Normative References
16.1. 引用規格

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]ブラドナーの、S.、 "要件レベルを示すためにRFCsにおける使用のためのキーワード"、BCP 14、RFC 2119、1997年3月。

[RFC3723] Aboba, B., Tseng, J., Walker, J., Rangan, V., and F. Travostino, "Securing Block Storage Protocols over IP", RFC 3723, April 2004.

[RFC3723] Aboba、B.、ツェン、J.、ウォーカー、J.、Rangan、V.、およびF. Travostino、 "IP上のセキュリティブロックストレージプロトコル"、RFC 3723、2004年4月。

[RFC4960] Stewart, R., "Stream Control Transmission Protocol", RFC 4960, September 2007.

[RFC4960]スチュワート、R.、 "ストリーム制御伝送プロトコル"、RFC 4960、2007年9月。

[RFC5040] Recio, R., Metzler, B., Culley, P., Hilland, J., and D. Garcia, "A Remote Direct Memory Access Protocol Specification", RFC 5040, October 2007.

[RFC5040] Recio、R.、メッツラー、B.、Culley、P.、Hilland、J.、およびD.ガルシア、 "リモートダイレクトメモリアクセスプロトコル仕様"、RFC 5040、2007年10月。

[RFC5041] Shah, H., Pinkerton, J., Recio, R., and P. Culley, "Direct Data Placement over Reliable Transports", RFC 5041, October 2007.

[RFC5041]シャー、H.、ピンカートン、J.、Recio、R.、およびP. Culley、 "信頼性の高いトランスポート上で直接データ配置"、RFC 5041、2007年10月。

[RFC5042] Pinkerton, J. and E. Deleganes, "Direct Data Placement Protocol (DDP) / Remote Direct Memory Access Protocol (RDMAP) Security", RFC 5042, October 2007.

[RFC5042]ピンカートン、J.およびE. Deleganes、 "直接データ配置プロトコル(DDP)/リモートダイレクトメモリアクセスプロトコル(RDMAP)セキュリティ"、RFC 5042、2007年10月。

[RFC5061] Stewart, R., Xie, Q., Tuexen, M., Maruyama, S., and M. Kozuka, "Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration", RFC 5061, September 2007.

[RFC5061]スチュワート、R.、謝、Q.、Tuexen、M.、丸山、S.、およびM.小塚、 "ストリーム制御伝送プロトコル(SCTP)動的アドレス再構成"、RFC 5061、2007年9月。

16.2. Informative References
16.2. 参考文献

[RFC2401] Kent, S. and R. Atkinson, "Security Architecture for the Internet Protocol", RFC 2401, November 1998.

[RFC2401]ケント、S.とR.アトキンソン、 "インターネットプロトコルのためのセキュリティー体系"、RFC 2401、1998年11月。

[RFC4301] Kent, S. and K. Seo, "Security Architecture for the Internet Protocol", RFC 4301, December 2005.

[RFC4301]ケント、S.とK. Seo、 "インターネットプロトコルのためのセキュリティアーキテクチャ"、RFC 4301、2005年12月。

[RFC5044] Culley, P., Elzur, U., Recio, R., Bailey, S., and J. Carrier, "Marker PDU Aligned Framing for TCP Specification", RFC 5044, October 2007.

[RFC5044] Culley、P.、Elzur、U.、Recio、R.、ベイリー、S.、およびJ.キャリア、 "TCP仕様のためのマーカーPDUアラインフレーミング"、RFC 5044、2007年10月。

[RFC5046] Ko, M., Chadalapaka, M., Elzur, U., Shah, H., and P. Thaler, "Internet Small Computer System Interface (iSCSI) Extensions for Remote Direct Memory Access (RDMA)", RFC 5046, October 2007.

[RFC5046]コ、M.、Chadalapaka、M.、Elzur、U.、シャー、H.、およびP.ターラー、RFC 5046 "リモートダイレクトメモリアクセス(RDMA)のためのインターネット小型コンピュータシステムインタフェース(iSCSIの)拡張機能" 2007年10月。

Authors' Addresses


Caitlin Bestler (editor) Neterion 20230 Stevens Creek Blvd. Suite C Cupertino, CA 95014 USA

ケイトリンベストの(エディタ)Neterio 20230スティーブンスクリークブルバードスイートCクパチーノ、CA 95014 USA

Phone: 408-366-4639 EMail:

電話:408-366-4639 Eメール

Randall R. Stewart (editor) Cisco Systems, Inc. Forest Drive Columbia, SC 29036 USA

ランドールR.スチュワート(エディタ)は、Cisco Systems、Inc.の森ドライブコロンビア、SC 29036 USA

Phone: +1-815-342-5222 EMail:

電話:+ 1-815-342-5222 Eメール

Full Copyright Statement


Copyright (C) The IETF Trust (2007).


This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

この文書では、BCP 78に含まれる権利と許可と制限の適用を受けており、その中の記載を除いて、作者は彼らのすべての権利を保有します。


この文書とここに含まれている情報は、基礎とCONTRIBUTOR「そのまま」、ORGANIZATION HE / SHEが表すまたはインターネットSOCIETY、(もしあれば)を後援し、IETF TRUST ANDインターネットエンジニアリングタスクフォース放棄ALLに設けられています。保証は、明示または黙示、この情報の利用および特定目的に対する権利または商品性または適合性の黙示の保証を侵害しない任意の保証がこれらに限定されません。

Intellectual Property


The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

IETFは、本書またはそのような権限下で、ライセンスがたりないかもしれない程度に記載された技術の実装や使用に関係すると主張される可能性があります任意の知的財産権やその他の権利の有効性または範囲に関していかなる位置を取りません利用可能です。またそれは、それがどのような権利を確認する独自の取り組みを行ったことを示すものでもありません。 RFC文書の権利に関する手続きの情報は、BCP 78およびBCP 79に記載されています。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at


The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at

IETFは、その注意にこの標準を実装するために必要とされる技術をカバーすることができる任意の著作権、特許または特許出願、またはその他の所有権を持ってすべての利害関係者を招待します。 ietf-ipr@ietf.orgのIETFに情報を記述してください。