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 endpoint.

    This protocol supports applications that perform the following tasks:

    • Deliver messages of different priorities

    • Deliver strict message order within stream

    • Bypass sequence delivery service within stream use multi-stream protocol

  • 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.

SCTP Connection to the AMF

The Access Gateway Function (AGF) uses the Stream Control Transmission Protocol (SCTP) to transport the Next Generation Application Protocol (NGAP) messages. These message provide control plane signaling with the Access and Mobility Management Functions (AMFs). The SCTP is a transport layer protocol which ensures reliable, in-sequence transport of data. SCTP provides multihoming support where one or both endpoints of a connection can consist of more than one IP address. This capability enables transparent failover between redundant network paths. The SCTP association is a connection between two SCTP endpoints. The AGF creates a Transport Layer Network Association (TNLA) between endpoints on the AGF and the AMF.

Figure 1: SCTP Multihoming SCTP Multihoming

Figure 1 shows a multihomed AGF SCTP endpoint and a single-homed AMF SCTP endpoint. With AGF SCTP endpoint multihoming, you can designate one of the AGF endpoints (IP address) as the primary path. If the primary path fails, the SCTP switches to the secondary path. The AGF supports the following capabilities:

  • Multihomed local endpoint

  • Routing instances to AMFs

  • Up to 10 TNLAs for each AMF

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

You can configure the SCTP connections to AMFs in the [edit services agf amf] hierarchy.

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').