Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SCTP

SCTP Overview

Stream Control Transmission Protocol (SCTP) is a transport layer protocol in the Internet protocol suite. SCTP exists at an equivalent level with UDP and TCP, which provides transport layer functions to many Internet applications. SCTP is a message stream-focused and reliable connection-oriented transport protocol with the following features:

  • Multi-stream protocol—SCTP provides a mechanism to maintain multiple streams of messages for each SCTP association.

    This protocol supports applications that perform the following tasks:

    • Deliver messages of different priorities

    • Deliver strict message order within stream

  • User data fragmentation—To deliver a message of a size more than the path maximum transmission unit (MTU) limit, the SCTP fragments the message in data chunks and sends it in different SCTP packets. SCTP header has a flag to mark the last chunk of fragmented message. The receiver side reassembles all the fragmented chunks and passes it to the upper layer protocol.

  • Chunk bundling—This feature enables the SCTP to bundle chunks from multiple messages in a single SCTP packet. The receiver side disassembles the chunks before delivering to the upper layer protocol.

  • Packet validation—You can include a verification tag in the SCTP header to uniquely identify an SCTP association session. Use a new verification tag for the revival. of a session. This feature provides protection against masquerade attacks and stale SCTP packets from previous association.

  • Multihoming support—The SCTP can specify the list of local transport addresses for the SCTP endpoint which the server and the client exchange during association startup. This list advertises at the other endpoint about the available destination address and source address in the SCTP packet that one endpoint receives after SCTP association setup. The other SCTP endpoint establishes the route for each of the received destination addresses and uses this route to ensure high availability for data transfer.

AGF TNLAs with AMFs

Next Generation Application Protocol (NGAP) on the Access Gateway Function (AGF) uses the Stream Control Transmission Protocol (SCTP) to transport the NGAP messages. The NGAP messages provide control plane signaling between the AGF and the Access and Mobility Management Functions (AMFs). SCTP is a transport layer protocol that provides the mechanism for reliable, in-sequence transport of data between endpoints. The endpoints form a unique Transport Layer Network Association (TNLA), that enables seamless communication between nodes.

The AGF uses the configured values in the services agf amf hierarchy to initiate a static TNLA with the AMF.

The AMF can dynamically request TNLAs to be added or deleted between the AGF and AMF by sending an NGAP AMF configuration update message. The AMF specifies the TNLA’s usage type and the weight factor when the TNLA is established. The AMF can also dynamically modify the TNLAs usage type or weight factor.

AGF supports the following :

  • Multihoming support where one or both endpoints of a SCTP association can have more than one bound IP address.
  • Separate routing instances for each AMF. SCTP communications occurs in the configured AMF routing instance. If a routing instance is not configured, AGF uses the default routing-instance.

  • Up to 10 TNLAs with each AMF. The initial TNLA is a static TNLA. Subsequent TNLAs added by the AMF are dynamic TNLAs.

  • Load balancing of user equipment (UE) across all TNLAs that support UE-associated signaling.

Figure 1: SCTP MultihomingSCTP Multihoming

Figure 1 shows a multihomed AGF SCTP endpoint and a single-homed AMF SCTP endpoint. SCTP maintains multiple packet paths between SCTP endpoints. One of the packet paths is designated as the primary path by the SCTP implementation. If the primary path fails, SCTP switches to the secondary path.

Configure the initial TNLA with the AMFs in the [edit services agf amf] hierarchy.

The following sample configuration shows AGF requesting a TNLA that supports both UE and non-UE associated signalling with a default weight factor of 128.

SCTP Support for Virtual Routing and Forwarding (VRF)

The VRF (Virtual Routing and Forwarding) feature allows for the management of remote IP addresses. SCTP client, before initiating new SCTP association, it should set socket option for route table index/VRF index, if egress interface to SCTP server configured inside VRF, other wise association will not get established as SCTP client will use default/global routing instance for association establishment. On SCTP server side, if VRF index socket option is not set on listening socket, association request received on all VRFs will be entertained but if VRF index socket option is set on listening socket, association establishment request coming on that particular VRF will only be entertained.  

Application can either set socket option with custom flag to provide route table index to SCTP to handle VRF-based SCTP association, to place association in that particular association, or let SCTP kernel to choose VRF for association during establishment in process of 4-way handshake, based on VRF in which ingress interface is configured.

When a SCTP association is established over a VRF instance, the kernel must take into account an additional parameter, the unique VRF ID, when looking up unique associations by using the existing 4-tuple used in SCTP (source IP, source port, destination IP, destination port).

  • Inbound SCTP packets over VRF:

    When a SCTP packet arrives on an ingress interface, a lookup is conducted using the 5-tuple (source IP, source port, destination IP, destination port, and 'VRF ID on which the packet was received') to determine if there is an existing SCTP association present in the kernel.

  • Outbound SCTP packets over VRF:

    For every SCTP packet that is sent out from the kernel, the corresponding VRF ID is obtained from the association data using the 5-tuple (source IP, source port, destination IP, destination port, and 'VRF ID on which the packet is to be sent').