目录
第1章 L2 RLC层的架构
1.1 RAN的架构
1.2 L2架构概述
1.3 RLC软件系统结构图
第2章 TCP/IP协议提供的三种传输服务
2.1 TCP
2.2 UDP
2.3 Raw socket
2.4 关于Socket
2.5 关于SDU和PDU
第3章 支持分段重组的RLC数据包的格式与数据流
3.1 RLC PDU结构
3.2 RLC数据流
第4章 RLC三种无线链路服务
4.1 透明传输TM(Transparent Mode)-- 类RAW Socket模式
4.2 非确认模式UM(UnacknowIedgedMode)--类UDP模式
4.3 确认模式AM(Acknaw|edged Mode)-- 类TCP模式
4.4 三种传输模式功能的比较
第5章 RLC传输模式与逻辑信道映射
5.1 信道映射
5.2 RLC实体的传输模式与SRB/DRB的关系
L2(数据链路层),又称无线网络层,实现终端与基站之间通过无线信道(逻辑信道)传递分组数据。
(1)PDCP(Packet Data Convergence Control,分组数据汇聚控制层)
(2)RLC(Radio Link Control,无线链路控制层)
无线链路控制协议(RLC)是为了保证数据传输业务可靠服务质量(QoS)而制定的协议。
这是因为移动通信在无线电传播环境中的数据传输信道状况很差,传输数据的误码率极高,因此保证数据传输业务的服务质量是一项艰巨的任务。
RLC协议是在数据链路控制(DLC)层中引进了多个新的自动重发请求(ARQ)机制,以此来解决对服务质量的要求。
(3)MAC(Medium Access Control,媒体访问控制层),通过控制底层的物理层媒介(基带时频资源)传递数据。MAC层把逻辑信道数据映射到传输信道,并把映射后的传输信道的传输块数据TB传递给物理层。
RLC提供的三种服务与TCP/IP协议栈提供的三种服务,有很大的相似性。
先温习一下TCP/IP基于socket的三种服务。
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。通过在上层用户之前增加TCP头,支持数据的分片与重新排序。支持重传。
应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。
之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。
TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。
然后接收端实体对已成功收到的包发回一个相应的确认(ACK);
如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。
TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
用户数据包协议(UDP,User Datagram Protocol) 是一种面向无连接的、不可靠的信息传送服务,通过在上层用户之前增加UDP头实现。没有可靠性保证、没有顺序保证和没有流量控制字段、没有重传等,可靠性较差。
UDP主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成 ,提供面向事务的简单不可靠信息传送服务。
UDP不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
UDP用来支持那些需要在计算机之间传输数据的网络应用。
原始套接字,为上层直接接收本机网卡上的数据帧或者数据包,对于监听网络的流量和分析是很有作用的。
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口
套接字是通信的基石,是支持TCP/IP协议的路通信的基本操作单元。可以将套接字看作不同主机间的进程进行双间通信的端点,它构成了单个主机内及整个网络间的编程界面。
套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念。
套接字通常和同一个域中的套接字交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序),各种进程使用这个相同的域互相之间用Internet协议簇来进行通信。
SDU(Service Data Unit)服务数据单元,对应于某个子层中没有被处理的数据。对于某个子层而言,表示由上一层传递到本层还未被处理的数据。
PDU(Protocol Data Unit)协议数据单元,对应于被该子层处理形成特定格式的数据。对于某个子层而言,表示将本层SDU经过特定格式处理后将传递到下一层的数据。
SUD和PDU是相对的概念
RLC头携带了RLC PDU的序列号,该序列号与RLC SDU内部序列号不同。
一个RLC PDU可以由下面的段组成:
第i个SDU的最后一个分段,串接n个完整的SDU,再串接第i+n+1个SDU的第一段,其中n为大于或等于0的整数。
与UMTS系统PLC PDU大小是准静态不同,LTE系统RLC PDU的大小能够动态变化。
对于高速数据,采用大的PDU能够获得更小的开销,
然而对于低速数据,则需要小的PDU。
因此,在LTE系统中支持动态PDU,以实现数据速率的变化,其变化范围可以从几千比特每秒至几百兆比特每秒。
由于RLC调度、速率自适应机制均位于基站中,因此,LTE系统能够很容易地支持动态PDU机制。
RLC在空口协议栈中处于L2层,位于L2 PDCP和MAC之间,其向上提供三种无线链路层数据传输服务:
透明传输TM、非确认模式UM、确认模式AM。
有点类似与TCP/IP协议栈提供的三种数据传输服务。
(1)概述
TM数据传输主要是以透传的方式,不保证数据包的顺序,以最短的时延传递到对端。
主要适用于对时延敏感、不希望原始数据被分段。并且不需要下层保证数据包顺序到达的业务,如上层信令、广播消息、寻呼消息等。
这些数据,每一次的传输,都是独立块的,不需要依赖前后的数据块。
TM模式对于上层指示需要传输的数据,不执行任何附加的操作,直接将上层PDU递交给底层,并且不执行对SDU进行打包、分段等功能。主要为上层提供BCCH、DUUL CCCH和PCCH逻辑信道上的数据传输。
有点类似TCP/IP通信中的混杂模式,应用层可以直接绕过TCP/IP协议栈,直接收发MAC层数据包。
(2)数据包格式
在TM透明模式下,没有添加任何RLC层的头信息。
(1)概述
UM数据传输能够保证数据按序传递给上层,并且能够对上层数据根据无线资源的带宽限制进行打包分段,以最短时延使数据包按序到达对端,主要适用于对时延敏感、但是允许一定丢包率的业务,如VoIP等业务。
在发送端,UM发送实体通过其与上层协议栈之间的服务接入点SAP(类似TCP/IP socket)将上层数据放入发送缓存中。然后根据下层给予的发送机会和提供的带宽大小对发送缓存中的数据进行打包分段。最后加上RLC头.通过逻辑信道发送出去。
在接收端,由于下层具有HARQ的重传功能,并且下层不提供重排序的功能。所以UM接收实体需要将由于下层重传导致的乱序到达的数据包进行重排序,并完成解分段、解打包从而将数据包还原成原始的服务数据单元按序地交给上层。
在UM传输模式下,UM接收实体主要是用三个参数(VR(UH)、VR(UR)、VR(U×))记录特定的PDU序列号以及一个定时器和接收窗口来对接收的数据进行控制,从而完成重排序、重组等功能。
因此:
但不支持ARQ差错控制。
(2)数据包分段、串联封装原理
(3)数据包分段、串联封装案例1
(4)数据包分段、串联封装案例2
(5)支持分段、重组的数据包格式
(1)概述
AM数据传输以ARQ的方式为上层提供可靠的数据传输,保证数据正确地按序到达对端,主要适用于对时延不敏感、对错误敏感的业务,如FTP业务、后台业务、交互业务等。
AM实体包括发送部分和接收部分。
在发送部分:
AM实体将从上层传来的服务数据单元(SDU)放入AM实体传输缓存,如果此时接收部分指示需要发送控制协议数据单元(PDU).
AM实体发送部分则根据下层提供的发送机会和带宽大小,
在接收部分:
接收到RLC PDU后,
在AM的传输模式下:
AM实体的发送部分用四个参数(VT(A)、VT(S)、VT(MS)、POLLSN)来记录特定的发送PDU的序列号以及一个管理状态PDU的定时器和管理轮询的定时器的使用,从而完成对发送状态PDU和轮询以及发送窗口的控制。AM实体发送部分还需要进行打包、分段、再分段等操作.
在接收端,AM实体的接收部分还需要用5个参数(VR(R)、VR(MR)、VR(X)、VR(MS)、VR(H))来记录特定的PDU序列号以及一个定时器和接收窗口来对接收的数据进行控制(解打包、解分段)。从而完成重排序、重组等功能以及与发送部分配合完成ARQ功能。
在AM模式中,由发送端和接收端共同完成ARQ差错控制过程,这是RLC层一个重要的功能。ARQ过程中的状态PDU发送过程主要由管理状态PDU的定时器以及接收窗中的定时器控制;ARQ过程中的轮询发送过程则是由管理轮询的定时器。以及从上次发送轮询以来记录的发送过的PDU个数和字节数来控制
因此:
(2)支持分段、重组的数据包格式
与UM模式相似,不同的是AM模式下支持ARQ差错控制。
(3)ARQ差错控制概述
差错控制数据链路层层是一个非常重要的功能,数据链路层层需要在不太可靠的物理层来尽量实现可靠的链路层传输,靠的就是差错控制。
所谓差错控制,就是发送端对传输的数据信息检错编码、纠错编码,接收端对接收到的数据进行错误检测,加以恰当的纠错、并进行确认的处理过程。
检错是指接收方通过各种方法能发现数据中的错误并且通知发送方进行重传该信息,常见的检错技术包括CRC.
纠错是指当发现错误地时候直接能够改正,而不是通过反馈给发送方进行重传。
传输出错分下面几种情况:
那么和上面错误对应的就是差错控制的功能:
通过以上情况考虑,设计出来的协议就是差错控制。
通过接收方请求发送方重传出错的数据报文来恢复出错的报文,是通信中用于处理信道所带来差错的方法之一,有时也被称为后向纠错(Backward Error Correction,BEC);
“后向”纠错:表示放弃之前已经发送的数据,重新发送新的数据。RLC层的ARQ就是后向纠错。
常见的差错控制技术包括:
与RLC层后向纠错对应的就是PHY层的前向纠错FEC编码,与MAC层的混合自动重传请求HARQ差错控制。
详见:
《[4G&5G专题-55]:L2 MAC层 - 差错控制技术与混合自动重传请求HARQ协议》
https://blog.csdn.net/HiWangWenBing/article/details/114399713
这里需要说明的,无论是哪种模式,在传输数据是,终端都需要与基站先建立RLC连接。
也就是说,三种数据传输模式,都是针对终端而言的。
终端需要实现与基站建立多个RLC连接,才能通过无线链路发送分组数据包。不同的RLC连接,可以配置不同的传输模式。
Radio Bearer (RB)是RRC层的概念,是基站为UE分配的不同层协议实体及配置的总称,包括PDCP协议实体、RLC协议实体、MAC协议实体和PHY分配的一系列资源等。
信令无线承载”(SRB)定义为仅仅用于RRC和NAS消息传输的无线承载(RB)。更具体地讲,定义如下三种SRB:
- SRB0用于RRC 消息,使用CCCH逻辑信道;也就是SRB0在RLC实体的传输类型是TM模式。
- SRB1 用于RRC 消息, 使用DCCH逻辑信道;同时对于NAS消息,SRB1先于SRB2的建立,RLC实体的传输类型是AM或UM模式
- SRB2 用于NAS消息,使用DCCH逻辑信道。SRB2要后于 SRB1建立,并且总是由E-UTRAN在安全激活后进行配置。
每个终端用户不同的信令信令承载,都需要创建新的底层(包括PDCP, RLC., MAC层)的实体。
参考:
https://www.mscbsc.com/viewnews-101731.html
https://wenku.baidu.com/view/81ce4297657d27284b73f242336c1eb91b373353.html