|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. SCTP in 4G/5G Network ArchitectureIn 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. Packet StructureFollowing is an example of IP header + SCTP packet. Chunk TypeFollowings are the list of values used as Chunk Type field.
Chunk FlagsFollowings are some of the chunk types. Which of these are used varies depending on Chunk Type.
SCTP EstablishLike 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) INITInternet 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_ACKInternet 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_ECHOInternet 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_ACKInternet 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 VideosReference
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||