IP Network - SCTP

 

 

 

SCTP stands for Stream Control Trasport Protocol. As its name implies, it is a Trasport Protocol like TCP. It is similar to TCP in terms of fundamentals but added some features which would compensate the weak spot of TCP.  Watch videos in Reference Section if you want to learn further details on SCTP protocol in general.

 

In cellular communication system, SCTP is the protocol being used in the communication between eNB and MME(4G) and the protocol being used between gNB and AMF as illustrated below.

 

 

Structure of the protocol stack for these interface is illustrated as below.

 

 

If you take packet capture (e.g, Wireshark capture) over the interface, you would get the packet structure as below.

 

 

 

 

SCTP Establish

 

Like TCP, SCTP also requires the initial handshake to establish the connection between two end points. As shown below, SCTP goes through 4 step handshake whereas TCP goes through 3 way handshake. Following is SCTP initial setup process captured with Wireshark from Amarisoft Callbox.

 

 

 

(1) INIT

 

Internet Protocol Version 4, Src: 10.0.0.185, Dst: 10.0.0.162

    0100 .... = Version: 4

    .... 0101 = Header Length: 20 bytes (5)

    Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0))

        0000 00.. = Differentiated Services Codepoint: Default (0)

        .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2)

    Total Length: 68

    Identification: 0x0000 (0)

    Flags: 0x40, Don't fragment

        0... .... = Reserved bit: Not set

        .1.. .... = Don't fragment: Set

        ..0. .... = More fragments: Not set

    Fragment Offset: 0

    Time to Live: 64

    Protocol: SCTP (132)

    Header Checksum: 0x24da [validation disabled]

    [Header checksum status: Unverified]

    Source Address: 10.0.0.185

    Destination Address: 10.0.0.162

Stream Control Transmission Protocol, Src Port: 48041 (48041), Dst Port: 38412 (38412)

    Source port: 48041

    Destination port: 38412

    Verification tag: 0x00000000

    [Association index: 65535]

    Checksum: 0x0ffaab98 [unverified]

    [Checksum Status: Unverified]

    INIT chunk (Outbound streams: 8, inbound streams: 65535)

        Chunk type: INIT (1)

            0... .... = Bit: Stop processing of the packet

            .0.. .... = Bit: Do not report

        Chunk flags: 0x00

        Chunk length: 36

        Initiate tag: 0x8d10a6cf

        Advertised receiver window credit (a_rwnd): 106496

        Number of outbound streams: 8

        Number of inbound streams: 65535

        Initial TSN: 3757580128

        Supported address types parameter (Supported types: IPv4)

            Parameter type: Supported address types (0x000c)

                0... .... .... .... = Bit: Stop processing of chunk

                .0.. .... .... .... = Bit: Do not report

            Parameter length: 6

            Supported address type: IPv4 address (5)

            Parameter padding: 0000

        ECN parameter

            Parameter type: ECN (0x8000)

                1... .... .... .... = Bit: Skip parameter and continue processing of the chunk

                .0.. .... .... .... = Bit: Do not report

            Parameter length: 4

        Forward TSN supported parameter

            Parameter type: Forward TSN supported (0xc000)

                1... .... .... .... = Bit: Skip parameter and continue processing of the chunk

                .1.. .... .... .... = Bit: Do report

            Parameter length: 4

 

 

(2) INIT_ACK

 

Internet Protocol Version 4, Src: 10.0.0.162, Dst: 10.0.0.185

    0100 .... = Version: 4

    .... 0101 = Header Length: 20 bytes (5)

    Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0))

        0000 00.. = Differentiated Services Codepoint: Default (0)

        .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2)

    Total Length: 292

    Identification: 0x0000 (0)

    Flags: 0x40, Don't fragment

        0... .... = Reserved bit: Not set

        .1.. .... = Don't fragment: Set

        ..0. .... = More fragments: Not set

    Fragment Offset: 0

    Time to Live: 64

    Protocol: SCTP (132)

    Header Checksum: 0x23fa [validation disabled]

    [Header checksum status: Unverified]

    Source Address: 10.0.0.162

    Destination Address: 10.0.0.185

Stream Control Transmission Protocol, Src Port: 38412 (38412), Dst Port: 48041 (48041)

    Source port: 38412

    Destination port: 48041

    Verification tag: 0x8d10a6cf

    [Association index: 65535]

    Checksum: 0x30678470 [unverified]

    [Checksum Status: Unverified]

    INIT_ACK chunk (Outbound streams: 8, inbound streams: 8)

        Chunk type: INIT_ACK (2)

            0... .... = Bit: Stop processing of the packet

            .0.. .... = Bit: Do not report

        Chunk flags: 0x00

        Chunk length: 260

        Initiate tag: 0x790ad620

        Advertised receiver window credit (a_rwnd): 106496

        Number of outbound streams: 8

        Number of inbound streams: 8

        Initial TSN: 4169966867

        State cookie parameter (Cookie length: 228 bytes)

            Parameter type: State cookie (0x0007)

                0... .... .... .... = Bit: Stop processing of chunk

                .0.. .... .... .... = Bit: Do not report

            Parameter length: 232

            State cookie: 4124569d7e0548bdbfbc4c54e0af0c95e938d9f500000000000000000000000000000000

        ECN parameter

            Parameter type: ECN (0x8000)

                1... .... .... .... = Bit: Skip parameter and continue processing of the chunk

                .0.. .... .... .... = Bit: Do not report

            Parameter length: 4

        Forward TSN supported parameter

            Parameter type: Forward TSN supported (0xc000)

                1... .... .... .... = Bit: Skip parameter and continue processing of the chunk

                .1.. .... .... .... = Bit: Do report

            Parameter length: 4

 

 

(3) COOKIE_ECHO

 

Internet Protocol Version 4, Src: 10.0.0.185, Dst: 10.0.0.162

    0100 .... = Version: 4

    .... 0101 = Header Length: 20 bytes (5)

    Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0))

        0000 00.. = Differentiated Services Codepoint: Default (0)

        .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2)

    Total Length: 264

    Identification: 0x0000 (0)

    Flags: 0x40, Don't fragment

        0... .... = Reserved bit: Not set

        .1.. .... = Don't fragment: Set

        ..0. .... = More fragments: Not set

    Fragment Offset: 0

    Time to Live: 64

    Protocol: SCTP (132)

    Header Checksum: 0x2416 [validation disabled]

    [Header checksum status: Unverified]

    Source Address: 10.0.0.185

    Destination Address: 10.0.0.162

Stream Control Transmission Protocol, Src Port: 48041 (48041), Dst Port: 38412 (38412)

    Source port: 48041

    Destination port: 38412

    Verification tag: 0x790ad620

    [Association index: 65535]

    Checksum: 0xa00fe0f7 [unverified]

    [Checksum Status: Unverified]

    COOKIE_ECHO chunk (Cookie length: 228 bytes)

        Chunk type: COOKIE_ECHO (10)

            0... .... = Bit: Stop processing of the packet

            .0.. .... = Bit: Do not report

        Chunk flags: 0x00

        Chunk length: 232

        Cookie: 4124569d7e0548bdbfbc4c54e0af0c95e938d9f500000000000000000000000000000000

 

 

(4) COOKIE_ACK

 

Internet Protocol Version 4, Src: 10.0.0.162, Dst: 10.0.0.185

    0100 .... = Version: 4

    .... 0101 = Header Length: 20 bytes (5)

    Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0))

        0000 00.. = Differentiated Services Codepoint: Default (0)

        .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2)

    Total Length: 36

    Identification: 0x0000 (0)

    Flags: 0x40, Don't fragment

        0... .... = Reserved bit: Not set

        .1.. .... = Don't fragment: Set

        ..0. .... = More fragments: Not set

    Fragment Offset: 0

    Time to Live: 64

    Protocol: SCTP (132)

    Header Checksum: 0x24fa [validation disabled]

    [Header checksum status: Unverified]

    Source Address: 10.0.0.162

    Destination Address: 10.0.0.185

Stream Control Transmission Protocol, Src Port: 38412 (38412), Dst Port: 48041 (48041)

    Source port: 38412

    Destination port: 48041

    Verification tag: 0x8d10a6cf

    [Association index: 65535]

    Checksum: 0xa018cd9c [unverified]

    [Checksum Status: Unverified]

    COOKIE_ACK chunk

        Chunk type: COOKIE_ACK (11)

            0... .... = Bit: Stop processing of the packet

            .0.. .... = Bit: Do not report

        Chunk flags: 0x00

        Chunk length: 4

 

 

 

Videos