本帖最后由 Helloamy2014 于 2015-7-11 16:12 编辑
我的4G之路-渐行渐远,为什么你就是搞不定331?
我的4G之路-为什么你就是搞不定331?(一)
你和女神之间,你每天投入大量时间和她在一起,付出了很大的心血来了解她。
有时候,你看她,觉得触手可及的近,然而突然清醒过来,又发现她其实很远。原来你从来就未曾真正了解她。
和女神之间这种又恨又爱的感觉,对于331,又何尝不是如此呢? 我总是问自己:从3G的25.331看到4G的36.331,我觉得好像懂了。但回过头看,才发现其实压根就没有真正懂过。
每当我看到331,我总是想到在我们日常中的各种关系。 当你下定决心要去了解一个人,而且费尽了自己的心思,你总觉得你已经了解对方的一部分,然而不管你怎么努力,你依然无法走进对方心里。Sigh,谁都不要拦着我,写完我要去哭一场...
我的心理学老师说,那是因为你们之间缺少关键对话。我深以为然。
多年之后,我终于明白我被331玩得团团转的原因了,那就是我还是不明白这一个个的流程,其背后的用意是什么。
为什么要分为为SRB1和SRB2?SRB2为什么要和DRB一起建立,而不和SRB1一起建立?
为什么要重建?重建有什么好处?
何为安全性激活? A1-A5测量事件使用的场景是什么?
...
如果连这些基本问题都没有想明白的话,又何以能搞定331呢? 但是,协议这个东西,也不是一遍遍看,或者从网上搜索一些翻译成中文的版本,就能搞定的吧?因为这些资料网上实在太多了! 所以,我在7月份发起了和RRC的关键对话,一起来参加讨论吧。
最首先的一个关键对话是,RRC连接建立。而且,我打算花费大量篇幅来讲解RRC连接建立。你就知道该流程有多重要了。
1)RRC连接建立内容 RRCConnectionRequest消息从协议结构而言,其承载架构为SRB0/CCCH/RLC-TM/无PDCP; 填充RRCConnectionRequest消息内容:
InitialUE-Identity:填S-TMSI(40bit)或Random Id(40bit)
EstablishmentCause,3bit
Spare,1bit
RRCConnectionSetup消息,其承载架构也是SRB0/CCCH/RLC-TM/无PDCP,其内容是负责SRB1的建立。
当用户收到RRCConnectionSetup消息后,根据其要配置的东西进行了一番配置后,就回复RRCConnectionSetupComplete消息。 我们先暂时不管消息要携带什么,仅仅想想这几条消息发送在什么信道上: RRC连接建立请求和其实都是在SRB0上传输的。何谓SRB0呢? SRB0就是不会为该用户建立公共通道的状态。也就是说用户看来,因为只有一条公共大道通向罗马,人又多,因此拥挤得头破血流,发生碰撞也是常有的事情。 因为RRC连接建立请求消息其实就是放在msg3,响应在msg4中。即完全是走随机接入那一套。只有经过了RRC连接建立,才会建立SRB1,用户才具有了自己专用通道。
接下来,我要重点分析一下SRB0状态和SRB1状态的各自特点。假设你有一个手机,你闭上眼睛就能想到你的手机的处境: SRB0态可以认为是一个最初始状态: 用户没有专有的东西。所有的CCCH消息都在这条大道上传输,都存在碰撞的可能性。msg3消息是用的PUSCH,那些物理层配置,就是用默认的那一套,见331中9.2章节的一些默认配置说明。
SRB1态,给用户分配了专用逻辑信道:
此时还给配置了MAC和物理层参数。层1参数每个用户只有一套,主要配置的是PDSCH、PUSCH参数以及CQI/SRS/SR等上报参数。
这些参数以后是可以重配的。
在SRB1建立起来后,后续,用户要发送的信息,就不用再去挤公共信道了。
如紧接着的UE能力查询,还负责大量NAS消息的传送,如NAS层的鉴权。这些消息都是在RRC连接起来后马上进行的。
注意,这些流程都还是不需要空口的安全模式激活的。只有在后续,当从核心网发送过来初始上下文建立请求消息(initial context)后,其中携带的AS层的安全模式控制参数后,此时,才进行AS层的安全激活。
何为AS层的安全模式控制?即接入层的安全模式,即对于信令数据的完整性保护和用户面数据的加密。具体内容后续会专门一个章节讲解。这些接入层的安全模式需要一些参数,这些参数原本是从核心网的用户上下文提取的,之后才是通过在SRB1上通知用户的。
因此RRC连接建立过程以及之后的部分交互消息,如UE能力查询,这些消息本身发送都是没有安全模式控制的。只有在其后的用户获得了安全模式控制参数这个时间点之后,在SRB1,SRB2,DRB上传输的参数才都是经过安全保护的。即在SRB1和SRB2上运行完整性保护算法,而在SRB1,SRB2和DRB上运行加密算法。
总结一下,其实SRB0和SRB1,实现的就是一个从无到有的过程。这个过程对于终端而言,才是一个巨大飞跃。在SRB1建立完成之后才进行安全模式控制。 之后的SRB2和DRB建立过程就非常简单。
SRB2和DRB: 之后才是RRC连接重建消息,用于建立SRB2和默认承载:此时需要建立:
SRB2用于传输低优先级信令,相当于又开了一个通道; DRB用户传输数据,打开了一个更大的通道。
看到这里,有人问,那为啥SRB2不和SRB1一起配置,而要和后续DRB一起配置呢?
主要考虑是SRB2消息早发一点, 本来就是用于传输低优先级消息,time benefit不大,且还会增加RRC连接建立消息的大小,因为AM模式配置的那一堆参数也不少。因此就不这么干了。
下篇:消息具体内容讲解。
|