Skip to main content

Command Palette

Search for a command to run...

NR Protocol Stack: RLC

Published

Functions of RLC :

  • Segmentation

  • ARQ — retransmission

RLC modes:

Different services have different requirements. For example, during transfer of large files, error free delivery of data is important whereas for other applications, for example streaming services, a small amount of missing packets is not a problem.

Transparent Mode — In this mode, the RLC is completely transparent. There are no retransmissions, no duplicate detection and no segmentation or reassembly taking place.

This mode is useful for control plane broadcasting chaannels such as BCCH, CCCH, and PCCH. in this cases, the channels are already designed in such a manner that there is no need for segmentation and since they are designed for varying channel conditions, there are no need for retransmission.

Unacknowledged Mode — This mode supports segmentation but not retransmissions. This mode is used when error free delivery is not required for example VoIP.

Acknowledged Mode — This is the main mode of DL shared channel and UL shared channel. Segmentation, duplicate removal, and retransmission of erroneous data are all supported in this mode. This mode is essential for web browsing, file transfer, etc.

Segmentation

RLC SDU → RLC segmentation → RLC PDU

A sequence no is attached to each incoming SDU, using 6 or 12 bits for unacknowledged mode and 12 or 18 bits for acknowledge mode. The sequence no is added to RLC PDU header.

The sequence no is necessary to identify the different packets so that when the feedback is received about each the reception is successful, it is clear which PDU was or was not received successfully.

If one or more than one RLC PDU is used including the header, fit exactly into the expected transport block size,then, there is no need for segmentation.

Each PDU carries the same sequence no as original unsegmented SDU as a part of the header. To distinguish whether the PDU contains a complete SDU or the first segment of the SDU or the last segment of the SDU or in between segment of the SDU, there is a field in the header that’s called segmentation information which provide which of the above cases is true.

In LTE, in order to do the concatenation for the UL, the device should already know the exact block size. But until a scheduling grant is available, this is not known, so RLC has to wait for the grant before it can build the combined big RLC PDU.

So, in NR, instead of waiting for the grant, the RLC PDUs are assembled as soon as possible and the MAC layer performs the concatenation depending on the size of the transport block that is granted for the gNB.

Retransmission

Retransmission of the missing PDUs is one of the main functions of the RLC in ACK Mode.

In LTE, RLC takes care of in-sequence delivery whereas, in NR, this is taken care of by PDCP and is optional.

In-sequence delivery is optional because of 2 reasons:

  1. Latency: In LTE, RLC SDU cannot be forwarded to the higher layers unless all the previous SDUs have been correctly received. So, a momentary burst or interference can block the delivery of the subsequent SDU for quite some time. But during this time, those might be useful to the application. So, in NR, in-sequence delivery is removed from the RLC. This helps to reduce the overall latency as later packets do not have to wait for the retransmission of an earlier missing packet and it can be delivered directly to the higher layers.

  2. Buffering Requirements: This helps to reduce buffering requirements because there is no big queue buildup in the RLC layer because there is no huge waiting going on for all the previous packets to be successfully received. This positively impacts the amount of memory used for RLC buffering.

Example:

Let consider 2 RLC entities, one on the transmitting node and one on the receiving node.

If the PDUs are successfully received by the receiver, it is delivered to a higher layer, in this case it is PDCP.

At time t=0, the PDUs upto ’n’ are successfully received while till n-1 is successfully acknowledged by the receiver whereas n is not acknowledged yet.

  • Green color — PDUs that are received and acknowledged successfully.

  • Red color — received but not acknowledged yet

  • White color — PDUs yet to be delivered

  • Light green/yellow color — transmitting/receiving window

Transmission window starts from the PDU whose acknowledgment in not yet received.

Receiving window starts from the window where the next PDU is stored.

The transmission of PDUs continue and at time t1, and the transmission of n+1 and n+2 takes place (transmission of PDUs continue without waiting for the ’n’ as waiting for it will increase the latency. Later on, it will be retransmitted if it is significant) at the transmitter end.

The remaining PDUs that are transmitted successfully, are forwarded to the PDCP layer without waiting for the PDU n+1.

But at the receiver end, n+1 is not received, this is either due to loss during interference or the lower layer is handling the retransmission request (ARQ). Or one more reason can be possible that the lower layer has failed to detect the error.

Here the transmission window is not updated as no PDU is acknowledged yet. The reception window has not been updated yet as PDU n+2 arrived n+1 (middle one) is still missing.

So instead of updating the receiving window, it starts a timer called reassembly timer. If the PDU n+1 is not received before the timer expires, then a retransmission is required (RLC takes care of retransmission requests).

Let’s assume that the PDU n+1 arrives before the timer expires. In this case the timer stopped as the missing PDU had arrived. And now it is a successful reception, PDU n+1 is forwarded to the higher layer.

Duplicate detection is also the responsibility of RLC, so if n+1 arrives in 2 copies then one copy is discarded and the best PDU with the least error is transmitted to the upper layer.

The transmission continues with n+3, n+4 and n+5 and at time t3, PDUs upto n+5 is successfully transmitted but at the receiver side, the PDU n+3 and n+4 is missing. At the receiver side, it starts a timer and waits for the missing PDUs.

The time expires at t4, the receiver sends a controlled PDU containing a status report indicating what are the missing PDUs. control PDUs have higher priority than data PDUs to avoid the status report being unnecessarily delayed. This will negatively impact the transmission delay.

The control packets which carry the feedback about the buffer status report have higher priority.

When the transmitter receives the status report, it knows that only upto n+2 has successfully received and n+3 and n+4 are transmitted again. Now this time, the PDUs successfully received.

As the n+5 was the last PD in the transmission buffer, the transmitter requested a status report from the receiver by setting a flag in the header of the last PDU. so when the receiver receives the PDU with the flag, it will know that this is the last PDU and all the PDUs have been successfully received and acknowledged.

More from this blog

C

Concept is the Idea!

52 posts