ArticleslgStudy

engineering

SCTP packet structure

SCTP packet structure is a engineering topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand SCTP packet structure rather than just read about it. In short: The Stream Control Transmission Protocol (SCTP) has a simpler basic packet structure than TCP. Each consists of two basic sections: The common header, which occupies the first 12 bytes.

Key takeaways

  • SCTP packet structure belongs to engineering; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect SCTP packet structure to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of SCTP packet structure from memory before moving on to harder problems.

Reference excerpt

The Stream Control Transmission Protocol (SCTP) has a simpler basic packet structure than TCP. Each consists of two basic sections:

The common header, which occupies the first 12 bytes. In the adjacent diagram, this header is highlighted in blue. The data chunks, which form the remaining portion of the packet. In the diagram, the first chunk is highlighted in green and the last of N chunks (Chunk N) is highlighted in red. There are several types, including payload data and different control messages.

Common header All SCTP packets require the common header section (shown with a blue background).

Source port This field identifies the sending port. Destination port This field identifies the receiving port that hosts use to route the packet to the appropriate endpoint/application. Verification tag A 32-bit random value created during initialization to distinguish stale packets from a previous connection. Checksum SCTP's original design catered for Adler-32; but RFC 3309 changed the protocol to use the CRC32c algorithm.

Chunks Each SCTP packet consists, in addition to the common header, of chunks. Each chunk has a common format, but the contents can vary. The green bytes in the diagram above signify one chunk.

Chunk type An 8-bit value predefined by the IETF to identify the contents of the chunk value field. Chunk flags Eight flag-bits whose definition varies with the chunk type. The default value is zero. Chunk length A 16-bit unsigned value specifying the total length of the chunk in bytes (excludes any padding) that includes chunk type, flags, length, and value fields. Chunk data General-purpose data field whose definition varies with the chunk type. If the chunk length does not equate to a multiple of 4 bytes, then the protocol implicitly pads the chunk with trailing zeros.

Additionally, each chunk type may define a set of parameters which it includes inside the chunk value field (and, consequently, their length in the chunk length). Two types of parameter exist:

fixed parameters — they must appear and in the order specified, variable-length or optional parameters — they appear after the fixed parameters and may appear in any order and in any number. For optional/variable-length parameters, the parameter type, parameter length, and parameter value fields all behave just like their chunk counterparts. The minimum size of parameter is 4 bytes, and this occurs when the parameter value field is empty and the parameter consists only of the type and length fields.

List of chunk types RFC 2960 defines the following list of chunk types. More detailed information about each type is provided in the following subsections. Following this table each chunk and its parameters are defined. Please note the following color scheme:

gray: chunk fields, red: fixed parameters, green/blue: optional/variable-length parameters that alternate colors.

DATA chunk

Chunk type always 0 for payload data (DATA) Chunk flags There are currently only 4 flags used I — SACK chunk should be sent back without delay. U — If set, this indicates that this data is an unordered chunk and the stream sequence number is invalid. If an unordered chunk is fragmented, then each fragment has this flag set. B — If set, this marks the beginning fragment. An unfragmented chunk has this flag set. E — If set, this marks the end fragment. An unfragmented chunk has this flag set. Chunk length The chunk length has a minimum value of 17 as data of size less than one byte is not allowed. Fixed parameters: Transmission sequence number (TSN) The sequence number for the entire DATA stream (used in fragmentation for reassembly). Stream identifier Identifier of the stream that this data chunk belongs to. Stream sequence number Identifier of the sequence number for the message in this stream. If a message is fragmented then this value is maintained for all fragments. Payload protocol identifier Application-specific protocol identifier. SCTP makes no use of this or modification of it. However, devices along the path or the endpoints may use it. A value of 0 indicates that no payload protocol is specified. Data Application-specific data. Optional parameters: none.

INIT chunk

Chunk type always 1 for initiation (INIT). Chunk flags There are currently no flags used. Chunk length This is the chunk length which has a minimum value of 20 when chunk value is empty and no optional parameters are used. Fixed parameters have identical meaning as INIT ACK: Initiate tag Unsigned 32-bit number that is used in every SCTP packet in the verification tag within the common header. Advertised receiver window credit (a_rwnd) Amount of dedicated buffer space for this association that should never be reduced. # of outbound streams Number of outbound streams (from the sender of the INIT) it wishes to use for this association. Zero is an invalid value, and the receiver should ABORT the association upon receiving a zero. # of inbound streams Identical to # of outbound streams but number of inbound streams. No negotiation takes place on the established number, but the minimum of requested and offered should be used. Initial TSN Initial transmission sequence number to be used and may be any value. Optional parameters appear with alternating background colors of green and blue: Parameter type = 5 This parameter lists all the IPv4 addresses used at the sending endpoint. If it is a multihomed connection, then the IP address of each may be included. Parameter type = 6 This parameter lists all the IPv6 addresses used at the sending endpoint. If it is a multihomed connection, then the IP address of each may be included. Parameter type = 9 This parameter provides a suggested life-span increment the receiver should add to its default cookie life-span (in milliseconds). Parameter type = 11 This parameter is a hostname as defined in RFC 1123, section 2.1. Actual resolution of this name is outside the scope of SCTP. Additionally, a null terminating character must be included and must be included in the parameter length. Parameter type = 12 This parameter lists the address types the sender supports (e.g., IPv4 = 5, IPv6 = 6, hostname = 11). Parameter type = 32768 This parameter is reserved for explicit congestion notification support.

INIT ACK chunk The INIT ACK chunk replicates the INIT chunk except the chunk type is always 2.

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with SCTP packet structure

Start with the simplest possible case. Write down what SCTP packet structure claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In engineering, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to SCTP packet structure before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about SCTP packet structure ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of SCTP packet structure

In research
SCTP packet structure appears in engineering research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses SCTP packet structure in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
SCTP packet structure is common in secondary-school and first-year university syllabi. It links to neighbouring topics Internet Standards, Internet protocols, Transport layer protocols, so understanding it makes those chapters shorter.
In everyday life
Look for SCTP packet structure outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study SCTP packet structure in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what SCTP packet structure means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain SCTP packet structure out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is SCTP packet structure in simple terms?

The Stream Control Transmission Protocol (SCTP) has a simpler basic packet structure than TCP. Each consists of two basic sections: The common header, which occupies the first 12 bytes.

Why does SCTP packet structure matter?

Because it connects several engineering ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study SCTP packet structure?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on SCTP packet structure.

Tags

  • Internet Standards
  • Internet protocols
  • Transport layer protocols

Keep exploring