際際滷

際際滷Share a Scribd company logo
Chapter 7


                                      SNDCP
 Contents:
 7.1 Functional description of the SNDCP layer
     1.   Functions of the SNDCP layer
     2.   SNDCP services
     3.   Compression of header
     4.   Data compression Segmentation
 7.2 Messages and message flows
     1.   SNDCP message flows for data transfer
     2.   SNDCP message flows: XID negotiation
     3.   SNDCP header formats
     4.   SNDCP header fields
     5.   SNDCP Header example
Chapter 7


                                     SNDCP
 7.1 Functional description of the SNDCP layer
     1.   Functions of the SNDCP layer
     2.   SNDCP services
     3.   Compression of header
     4.   Data compression Segmentation
Subnetwork Dependant Convergence Protocol
      Transparent transfer of N-PDUs
     Transparent transfer of N-PDUs             Network layer protocols like e.g. IP v4 or v6 (until Rel 98 for X 25)
                                                are intended to be capable of operating over services derived from a
wide variety of subnetworks and data links. GPRS supports several network layer protocols providing protocol
transparency for the users of the service. Introduction of new network layer protocols to be transferred over GPRS
must be possible without any changes to GPRS. Therefore, all functions related to transfer of Network layer
Protocol Data Units (N-PDUs) are carried out in a transparent way by the GPRS network entities.
                                                             A compression technique as an optional function of the
                 Datacompression/decompression
               Data    compression/decompressionSNDCP improves the channel efficiency. The compression /
Application
 TCP/UDP       - -of user data
                   of user data                 decompression is done for the user data as well as for the protocol
               - -of protocol control information
                   of protocol control information
                                                control information (e. g. TCP/IP header). Compression parameters
  IP v 4/6
                                                   are negotiated between the MS and the SGSN (XID parameters).

 SNDCP                                     SNDCP
                                                          Segmentation and Re-assembly         This task comprises
                                                         Segmentation and Re-assembly
                                                   the                                         segmentation of a
    LLC                                     LLC
                                                   Network Protocol Data Unit (N-PDU) into a Logical Link Control
                          Relay                    Protocol Data Units (LL-PDUs) and the reassemble of a LL-PDUs into
    RLC             RLC       BSSGP        BSSGP   a N-PDU.
                                                                Multiplexing of PDPs
                                                               Multiplexing of PDPs
                               NS           NS
   MAC              MAC
                               FR           FR
                                                     This includes the multiplexing of N-PDUs from e.g. several network
 GSM RF            GSM RF      L1           L1       layer entities onto the appropriate LLC connection
              Um                      Gb
                                                                         Buffering
                                                                        Buffering
 MS                       BSS              SGSN
                                                        at the SNDCP for acknowledged service.
SNDCP services
                                                                                         N-PDU
Service primitives used for communication between                             header              data
the SNDCP layer and other layers:
                                                                   SN-DATA.Request
        Control
                    MBMS     PDP       PDP         SNDCP users   SN-UNITDATA.Request
        Entity


                                                                               control info        control info
                             1     5     6           15 NSAPI                 compression        decompression

 SNDCP layer                                                                             SNDCP entity

        SNDCP                                                                    data               data
       management                  SNDCP entity                               compression       decompression
         entity


         SNSM
                                                                              segmentation        reassembly
        Session              LL3   LL5   LL9 LL11       SAPI
   Management entity


                                                                    LL-DATA.Request             LL-DATA .Confirm
                                       LLC layer
                                                                  LL-UNITDATA.Request
                                                                                         SN-PDU
SNSM - SNDCP Session Management                                                                             LLC
MBMS - Multimedia Broadcast/Multicast Service
Compression of header

                   The protocol control information compression/decompression is an optional SNDCP
  control info     features. Up to now, only TCP/IP-header compression has been specified for protocol
 compression       control information compression. The compression applies to both SN-DATA
                   (acknowledged mode) and SN-UNITDATA (unacknowledged mode) primitives. Negotiation
                   of the supported algorithms and their parameters is carried out between MS and SGSN
                   using the XID-parameter.




   header               data


                                                                                     compressed header
                    compression algorithms defined in Rel 6:

                 TCP/IP header compression (RFC1144)
                 TCP/IP (IPv4) header compression
            or
 header
                 TCP/IP and UDP/IP header compression (RFC 2507)

            or header compression for IPv4 and IPv6

                 Robust Header Compression (ROHC, RFC 3095)
                 in RFC 3095 for RTP/UDP/IP, UDP/IP, ESP/IP and uncompressed
Data compression
                 Data compression is an optional SNDCP feature. Data compression applies to both SN DATA
    data         and SNUNITDATA primitives.
                 Data compression, if used, shall be performed on the entire N PDU, including the possibly
 compression
                 compressed protocol control information.
                 Several NSAPIs may use a common data compression entity, i.e. the same compression
                 algorithm and the same dictionary. Separate data compression entities shall be used for
                 acknowledged (SNDATA) and unacknowledged (SN UNITDATA).The negotiation of the
                 supported algorithms and their parameters shall be carried out using the XID parameter.

  header              data

       Compressed header + data
                                                                   Compressed (Compressed header + data)
                                                      Compression may work in UL, DL, or UL + DL or not at all

           compression algorithms defined in Rel 6:

               V.42 bis data compression


            or


               V.44 data compression



           V.42 bis and V.44 data compression are ITUT Recommendations
Segmentation
               A (possibly compressed) N-PDU is segmented into one or more SN-PDUs. The length of each
              SN-PDU is not greater than N201-I (for acknowledged mode) or N201-U (for unacknowledged
 segmentation
              mode).
              The F bit in the SNDCP header is set to 1 for the first segment, and 0 for all subsequent
              segments. For unacknowledged peer-to-peer LLC operations, DCOMP and PCOMP are included
              in the header when the F bit is set to 1, and are not included when the F bit is set to 0. For
              acknowledged peer-to-peer LLC operation, DCOMP, PCOMP and N-PDU number (#1, #2, ...) are
              included in the header when the F bit is set to 1, and are not included when the F bit is set to 0.
              The M bit in the SNDCP header is set to 0 for the last segment, and 1 for all previous segments. If
              only one SN-PDU is generated for an N-PDU, the F bit is set to 1 and the M bit set to 0.

                 Compressed N-PDU:                                            Next Compressed N-PDU:



             1. Segment                   2. Segment         3. Segment
                       N201                                                         N201
                                         N201
                                                                                                      N201
                                                           N201
SNDCP header

  F=1, M=1

  F=0, M=1
  F=0, M=0
Chapter 7


                                      SNDCP
 7.2 Messages and message flows
     1.   SNDCP message flows for data transfer
     2.   SNDCP message flows: XID negotiation
     3.   SNDCP header formats
     4.   SNDCP header fields
     5.   SNDCP Header example
SNDCP message flows for data transfer

Unacknowledged mode

          SNDCP                                                                                     SNDCP
                           SNDCP             LLC                     LLC             SNDCP
           Unser                                                                                     User
                SN-UNITDATA
                    .req      LL-UNITDATA
                                   .req        UI (SN-UNITDATA
                                                                       LL-UNITDATA
                                                       PDU)                              SN-UNITDATA
                                                                              .ind
                                                                                             .ind


 Acknowledged Mode

          SNDCP                              LLC                     LLC             SNDCP          SNDCP
                           SNDCP
           User                                                                                      User

                SN-DATA.req
                               LL-DATA.req
                                                   I (SN-DATA PDU)
SN-Data PDUs                                                               LL-DATA.ind
are buffered!                                                                            SN-DATA.ind
                                                         Ackn              LL-DATA.res
                               LL-DATA.conf
SNDCP message flows: XID negotiation
Negotiation of XID parameters between peer SNDCP entities is carried out to ensure optimized information
transfer. The parameters are called SNDCP exchange identity (XID) parameters. SNDCP XID parameter
negotiation can be initiated by the SNDCP entity at the MS or at the SGSN. If SNDCP XID parameters are to be
changed, SNDCP XID negotiation is initiated prior to data transfer - the MS initiates SNDCP XID negotiation
upon receipt of SNSM-ACTIVATE.indication; the SGSN initiates SNDCP XID negotiation upon receipt of the
SNSM-MODIFY.indication primitive if an NSAPI has been created (in case of an Inter-SGSN Routing Area
Update), or if the change in QoS profile to an existing NSAPI results in a change in compressor(s) used by the
NSAPI.


                 SNDCP                             LLC                    LLC               SNDCP            SNDCP
                                  SNDCP
                  Unser                                                                                       User
                       SN-XID.req
                                      LL-XID.req
                                                      XID (SN-XID par.)
  Currently not                                                                 LL-XID.ind
   applicable                                                                                     SN-XID.ind
    only one                                                                                       SN-XID.res
                                                                                LL-XID.res
    version!!                                            XID (SN-XID par.)
                                      LL-XID.conf
                       SN-XID.conf


   XID Parameter          Parameter                                                                                Sense of
                                      Length        Format           Range        Default value        Units
        name                Type                                                                                  negotiation
   SNDCP Version
                              0           1         0000bbbb          0-15              0                -             down
       number
  Data Compression            1       variable                 Depends on type of data compression: V.42 bis or V.44
    Protocol Control
      Information             2       variable       Depends on type of header compression: RFC 1144, RFC 2507 or ROHC
     Compression
SNDCP header formats
                                          Unacknowledged mode                                           Acknowledged mode
SN-PDU Type (T):
T=0                                                                         SN-DATA PDU
T=1      SN-UNITDATA PDU
                      F= 1   first Segment of N-PDU:                             F= 1      first Segment of N-PDU:
                             7      6  5    4    3   2   1     0                          7      6  5   4    3   2    1   0
                              X F=1 T=1 M          NSAPI           1                                                          1
                                                                                         X F=1 T=0 M          NSAPI
                                                                   2                                                          2
                                 DCOMP             PCOMP                                   DCOMP              PCOMP
                                                                   3                                                          3
                             Segment number                          First segment
  First segment                                 N PDU number                                     N-PDU number
                                                                   4                                                          4
  Indicator bit (F)                                                  Indicator bit (F)
                                                                   5                                                          
                                                                                                  Data segment
                                                                                                                              n
                                        Data segment
                                                                   n
                                                                                                 :
                      F= 0    not first Segment of N-PDU:                          F= 0    not first Segment of N-PDU:
                                                                   1                                                          1
                              X F=0 T=1     M       NSAPI                                 X F=0 T=0 M          NSAPI
                                                                   2                                                          2
                              Seg. number=2
                                                N PDU number       3                                                          
                                                                                                   Data segment
                                                                                                                              n
                                                                   4
                                                                   
                                        Data segment
                                                                   n



  The   M     -bit indicates if there are more SN PDUs to come                  M=0 last segment of that N-PDU
                                                                                M=1 more segments to follow
SNDCP header fields II

  X     -spare bit .Is set to 0. If SN-PDU is received with the Spare bit set to 1, the field is ignored without error
        notification.
      NSAPI
                      0        Escape mechanism for future extensions
                     1         Point-to-Multipoint Multicast (PTM-M) information
  Network
  Service            2-4       Reserved for future use
  Access             5-15      Dynamically allocated NSAPI value
  Point          SN-PDU with an unallocated NSAPI value are ignored by the receiving SNDCP entity without error
  Identifier     notification.

   DCOMP        0         no compression
  Data          1-14      Points to the data compression identifier negotiated dynamically
  compression 15          Reserved for future extensions
  coding    SN-PDUs with an unallocated DCOMP value are ignored by the receiving SNDCP entity without
            error notification.

   PCOMP             0         no compression
Protocol control 1-14          Points to the protocol control information compression identifier negotiated dynamically
information
compression      15            Reserved for future extensions
coding
                            SN-PDUs with an unallocated PCOMP value are ignored by the receiving SNDCP entity
                            without error notification.
SNDCP header fields II

Segmentation and reassembly in acknowledged mode
The transmitting SNDCP entity segments an N-PDU into an ordered sequence of one or more SN-PDUs. The
More bit (M) is used to identify the last segment.

       N PDU number               0-255    N-PDU number of the N-PDU.


 Segmentation and reassembly in unacknowledged mode
 A segment number is a sequence number assigned to each SN-UNITDATA PDU. The sequence number is set to
 0 in the first SN-UNITDATA PDU of an N-PDU, and incremented by 1 for each subsequent SN-UNITDATA PDU.
 The value range for the sequence number is from 0...15.
 The received segments belonging to the same N-PDU are re-ordered, if possible. If a timer (implementation
 dependent) elapses before all segments are received, the segments are discarded.


              N PDU number        0-4095    N-PDU number of the N-PDU


                          0-15   Sequence number for segments carrying a N-PDU
  Segment number

N-PDU 202                                  N-PDU 203                                  N-PDU 204

                             Seg 0             Seg 1          Seg 2           Seg 0            Seg 1
SNDCP Header example




 |GPRS SNDCP, SMG#31, 04.65 V6.7.0 (TS 101 297) (SNDCP670) UDT (= SN UNITDATA)
 |SN UNITDATA
 |----0101 |NSAPI                                |dynamically allocated NSAPI 5
 |---1---- |More bit                             |More segments to follow
 |--1----- |SN-PDU type                          |SN-UNITDATA PDU
 |-0------ |First segment indicator              |Not first segment
 |0------- |Spare                                |0
 |N-PDU Number
 |----0000 |N-PDU number                         |0
 |0010---- |Segment number                                  |2
 |11110101 |N-PDU number continued               |245

More Related Content

Chap07 sndcp 03t_kh

  • 1. Chapter 7 SNDCP Contents: 7.1 Functional description of the SNDCP layer 1. Functions of the SNDCP layer 2. SNDCP services 3. Compression of header 4. Data compression Segmentation 7.2 Messages and message flows 1. SNDCP message flows for data transfer 2. SNDCP message flows: XID negotiation 3. SNDCP header formats 4. SNDCP header fields 5. SNDCP Header example
  • 2. Chapter 7 SNDCP 7.1 Functional description of the SNDCP layer 1. Functions of the SNDCP layer 2. SNDCP services 3. Compression of header 4. Data compression Segmentation
  • 3. Subnetwork Dependant Convergence Protocol Transparent transfer of N-PDUs Transparent transfer of N-PDUs Network layer protocols like e.g. IP v4 or v6 (until Rel 98 for X 25) are intended to be capable of operating over services derived from a wide variety of subnetworks and data links. GPRS supports several network layer protocols providing protocol transparency for the users of the service. Introduction of new network layer protocols to be transferred over GPRS must be possible without any changes to GPRS. Therefore, all functions related to transfer of Network layer Protocol Data Units (N-PDUs) are carried out in a transparent way by the GPRS network entities. A compression technique as an optional function of the Datacompression/decompression Data compression/decompressionSNDCP improves the channel efficiency. The compression / Application TCP/UDP - -of user data of user data decompression is done for the user data as well as for the protocol - -of protocol control information of protocol control information control information (e. g. TCP/IP header). Compression parameters IP v 4/6 are negotiated between the MS and the SGSN (XID parameters). SNDCP SNDCP Segmentation and Re-assembly This task comprises Segmentation and Re-assembly the segmentation of a LLC LLC Network Protocol Data Unit (N-PDU) into a Logical Link Control Relay Protocol Data Units (LL-PDUs) and the reassemble of a LL-PDUs into RLC RLC BSSGP BSSGP a N-PDU. Multiplexing of PDPs Multiplexing of PDPs NS NS MAC MAC FR FR This includes the multiplexing of N-PDUs from e.g. several network GSM RF GSM RF L1 L1 layer entities onto the appropriate LLC connection Um Gb Buffering Buffering MS BSS SGSN at the SNDCP for acknowledged service.
  • 4. SNDCP services N-PDU Service primitives used for communication between header data the SNDCP layer and other layers: SN-DATA.Request Control MBMS PDP PDP SNDCP users SN-UNITDATA.Request Entity control info control info 1 5 6 15 NSAPI compression decompression SNDCP layer SNDCP entity SNDCP data data management SNDCP entity compression decompression entity SNSM segmentation reassembly Session LL3 LL5 LL9 LL11 SAPI Management entity LL-DATA.Request LL-DATA .Confirm LLC layer LL-UNITDATA.Request SN-PDU SNSM - SNDCP Session Management LLC MBMS - Multimedia Broadcast/Multicast Service
  • 5. Compression of header The protocol control information compression/decompression is an optional SNDCP control info features. Up to now, only TCP/IP-header compression has been specified for protocol compression control information compression. The compression applies to both SN-DATA (acknowledged mode) and SN-UNITDATA (unacknowledged mode) primitives. Negotiation of the supported algorithms and their parameters is carried out between MS and SGSN using the XID-parameter. header data compressed header compression algorithms defined in Rel 6: TCP/IP header compression (RFC1144) TCP/IP (IPv4) header compression or header TCP/IP and UDP/IP header compression (RFC 2507) or header compression for IPv4 and IPv6 Robust Header Compression (ROHC, RFC 3095) in RFC 3095 for RTP/UDP/IP, UDP/IP, ESP/IP and uncompressed
  • 6. Data compression Data compression is an optional SNDCP feature. Data compression applies to both SN DATA data and SNUNITDATA primitives. Data compression, if used, shall be performed on the entire N PDU, including the possibly compression compressed protocol control information. Several NSAPIs may use a common data compression entity, i.e. the same compression algorithm and the same dictionary. Separate data compression entities shall be used for acknowledged (SNDATA) and unacknowledged (SN UNITDATA).The negotiation of the supported algorithms and their parameters shall be carried out using the XID parameter. header data Compressed header + data Compressed (Compressed header + data) Compression may work in UL, DL, or UL + DL or not at all compression algorithms defined in Rel 6: V.42 bis data compression or V.44 data compression V.42 bis and V.44 data compression are ITUT Recommendations
  • 7. Segmentation A (possibly compressed) N-PDU is segmented into one or more SN-PDUs. The length of each SN-PDU is not greater than N201-I (for acknowledged mode) or N201-U (for unacknowledged segmentation mode). The F bit in the SNDCP header is set to 1 for the first segment, and 0 for all subsequent segments. For unacknowledged peer-to-peer LLC operations, DCOMP and PCOMP are included in the header when the F bit is set to 1, and are not included when the F bit is set to 0. For acknowledged peer-to-peer LLC operation, DCOMP, PCOMP and N-PDU number (#1, #2, ...) are included in the header when the F bit is set to 1, and are not included when the F bit is set to 0. The M bit in the SNDCP header is set to 0 for the last segment, and 1 for all previous segments. If only one SN-PDU is generated for an N-PDU, the F bit is set to 1 and the M bit set to 0. Compressed N-PDU: Next Compressed N-PDU: 1. Segment 2. Segment 3. Segment N201 N201 N201 N201 N201 SNDCP header F=1, M=1 F=0, M=1 F=0, M=0
  • 8. Chapter 7 SNDCP 7.2 Messages and message flows 1. SNDCP message flows for data transfer 2. SNDCP message flows: XID negotiation 3. SNDCP header formats 4. SNDCP header fields 5. SNDCP Header example
  • 9. SNDCP message flows for data transfer Unacknowledged mode SNDCP SNDCP SNDCP LLC LLC SNDCP Unser User SN-UNITDATA .req LL-UNITDATA .req UI (SN-UNITDATA LL-UNITDATA PDU) SN-UNITDATA .ind .ind Acknowledged Mode SNDCP LLC LLC SNDCP SNDCP SNDCP User User SN-DATA.req LL-DATA.req I (SN-DATA PDU) SN-Data PDUs LL-DATA.ind are buffered! SN-DATA.ind Ackn LL-DATA.res LL-DATA.conf
  • 10. SNDCP message flows: XID negotiation Negotiation of XID parameters between peer SNDCP entities is carried out to ensure optimized information transfer. The parameters are called SNDCP exchange identity (XID) parameters. SNDCP XID parameter negotiation can be initiated by the SNDCP entity at the MS or at the SGSN. If SNDCP XID parameters are to be changed, SNDCP XID negotiation is initiated prior to data transfer - the MS initiates SNDCP XID negotiation upon receipt of SNSM-ACTIVATE.indication; the SGSN initiates SNDCP XID negotiation upon receipt of the SNSM-MODIFY.indication primitive if an NSAPI has been created (in case of an Inter-SGSN Routing Area Update), or if the change in QoS profile to an existing NSAPI results in a change in compressor(s) used by the NSAPI. SNDCP LLC LLC SNDCP SNDCP SNDCP Unser User SN-XID.req LL-XID.req XID (SN-XID par.) Currently not LL-XID.ind applicable SN-XID.ind only one SN-XID.res LL-XID.res version!! XID (SN-XID par.) LL-XID.conf SN-XID.conf XID Parameter Parameter Sense of Length Format Range Default value Units name Type negotiation SNDCP Version 0 1 0000bbbb 0-15 0 - down number Data Compression 1 variable Depends on type of data compression: V.42 bis or V.44 Protocol Control Information 2 variable Depends on type of header compression: RFC 1144, RFC 2507 or ROHC Compression
  • 11. SNDCP header formats Unacknowledged mode Acknowledged mode SN-PDU Type (T): T=0 SN-DATA PDU T=1 SN-UNITDATA PDU F= 1 first Segment of N-PDU: F= 1 first Segment of N-PDU: 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 X F=1 T=1 M NSAPI 1 1 X F=1 T=0 M NSAPI 2 2 DCOMP PCOMP DCOMP PCOMP 3 3 Segment number First segment First segment N PDU number N-PDU number 4 4 Indicator bit (F) Indicator bit (F) 5 Data segment n Data segment n : F= 0 not first Segment of N-PDU: F= 0 not first Segment of N-PDU: 1 1 X F=0 T=1 M NSAPI X F=0 T=0 M NSAPI 2 2 Seg. number=2 N PDU number 3 Data segment n 4 Data segment n The M -bit indicates if there are more SN PDUs to come M=0 last segment of that N-PDU M=1 more segments to follow
  • 12. SNDCP header fields II X -spare bit .Is set to 0. If SN-PDU is received with the Spare bit set to 1, the field is ignored without error notification. NSAPI 0 Escape mechanism for future extensions 1 Point-to-Multipoint Multicast (PTM-M) information Network Service 2-4 Reserved for future use Access 5-15 Dynamically allocated NSAPI value Point SN-PDU with an unallocated NSAPI value are ignored by the receiving SNDCP entity without error Identifier notification. DCOMP 0 no compression Data 1-14 Points to the data compression identifier negotiated dynamically compression 15 Reserved for future extensions coding SN-PDUs with an unallocated DCOMP value are ignored by the receiving SNDCP entity without error notification. PCOMP 0 no compression Protocol control 1-14 Points to the protocol control information compression identifier negotiated dynamically information compression 15 Reserved for future extensions coding SN-PDUs with an unallocated PCOMP value are ignored by the receiving SNDCP entity without error notification.
  • 13. SNDCP header fields II Segmentation and reassembly in acknowledged mode The transmitting SNDCP entity segments an N-PDU into an ordered sequence of one or more SN-PDUs. The More bit (M) is used to identify the last segment. N PDU number 0-255 N-PDU number of the N-PDU. Segmentation and reassembly in unacknowledged mode A segment number is a sequence number assigned to each SN-UNITDATA PDU. The sequence number is set to 0 in the first SN-UNITDATA PDU of an N-PDU, and incremented by 1 for each subsequent SN-UNITDATA PDU. The value range for the sequence number is from 0...15. The received segments belonging to the same N-PDU are re-ordered, if possible. If a timer (implementation dependent) elapses before all segments are received, the segments are discarded. N PDU number 0-4095 N-PDU number of the N-PDU 0-15 Sequence number for segments carrying a N-PDU Segment number N-PDU 202 N-PDU 203 N-PDU 204 Seg 0 Seg 1 Seg 2 Seg 0 Seg 1
  • 14. SNDCP Header example |GPRS SNDCP, SMG#31, 04.65 V6.7.0 (TS 101 297) (SNDCP670) UDT (= SN UNITDATA) |SN UNITDATA |----0101 |NSAPI |dynamically allocated NSAPI 5 |---1---- |More bit |More segments to follow |--1----- |SN-PDU type |SN-UNITDATA PDU |-0------ |First segment indicator |Not first segment |0------- |Spare |0 |N-PDU Number |----0000 |N-PDU number |0 |0010---- |Segment number |2 |11110101 |N-PDU number continued |245