public interface SctpDataChunk extends SctpChunk
SctpChunk.Type| Modifier and Type | Method and Description |
|---|---|
long |
getPayloadProtocolIdentifier()
This value represents an application (or upper layer) specified
protocol identifier.
|
int |
getStreamIdentifier()
Identifies the stream to which the following user data belongs.
|
int |
getStreamSequenceNumber()
This value represents the Stream Sequence Number of the following
user data within the stream S.
|
long |
getTransmissionSequenceNumber()
This value represents the TSN for this DATA chunk.
|
default SctpChunk.Type |
getType() |
Buffer |
getUserData()
The actual payload of the data chunk.
|
boolean |
isBeginningFragment()
Flag: B bit
|
boolean |
isEndingFragment()
Flag: E bit
|
boolean |
isImmediate()
Flag: I bit
|
boolean |
isUnordered()
Flag: U bit
|
frame, getFlags, getHeader, getLength, getPadding, getValue, getValueLength, lookupboolean isUnordered()
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.
After reassembly (if necessary), unordered DATA chunks MUST be dispatched to the upper layer by the receiver without any attempt to reorder.
If an unordered user message is fragmented, each fragment of the message MUST have its U bit set to '1'.
(source: RFC 4960 Section 3.3.1)
boolean isBeginningFragment()
(source: RFC 4960 Section 3.3.1)
boolean isEndingFragment()
The (E)nding fragment bit, if set, indicates the last fragment of a user message.
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:
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. (source: RFC 4960 Section 3.3.1)
boolean isImmediate()
By setting this bit, the sender of a DATA chunk indicates that the corresponding SACK chunk should not be delayed.
(source: RFC 7053 Section 3)
long getTransmissionSequenceNumber()
(source: RFC 4960 Section 3.3.1)
int getStreamIdentifier()
(source: RFC 4960 Section 3.3.1)
int getStreamSequenceNumber()
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.
(source: RFC 4960 Section 3.3.1)
long getPayloadProtocolIdentifier()
The value 0 indicates that no application identifier is specified by the upper layer for this payload data.
(source: RFC 4960 Section 3.3.1)
Buffer getUserData()
default SctpChunk.Type getType()
Copyright © 2021. All Rights Reserved.