本帖最后由 爱卫生 于 2011-3-6 13:21 编辑
1.概述 GB接口:是BSS(PCU)与SGSN之间通信的接口。负责移动终端分组数据经BSS到SGSN的传输,同时也支持SGSN和PCU之间的信令,可以透明传输从移动终端到SGSN的信令。GB接口底层采用帧中继协议,允许多个用户才用帧中继方式复用同一条物理链路,有效带宽资源只有在用户实际进行数据传输时才临时分配给用户,数据传送结束后分配出去的带宽立即被收回。 BSSGP(Base Station System GPRS Protocol)用于在BSS和SGSN之间传送信令以及用户数据信息,其主要功能是在BSS和SGSN之间传送和路由选择以及服务质量(QoS)有关的信息,BSSGP协议与BSS和SGSN之间是一一对应的关系,也就是说如果一个SGSN要管理多个BSS,那么SGSN中对应每一个BSS都有一个相应的BSSGP设备。 图1 Gb接口信令层结构 在BSSGP层面上,流量控制的机制基于以下几个模式上: -在一个BSS里,每一个BVC都会被分配一个下行的缓冲区; -由SGSN发送到MS的BSSGP UNITDATA PDU是由BSS控制; -只有传送下行的BSSGP UNITDATA PDU的时候在BSS侧有一个流量控制的过程,而不提供上行的流量控制。
2. 流量控制的运行模式 流量控制管理的是在Gb接口上由SGSN到BSS的BSSGP UNITDATA PDU的传送。 BSS指示SGSN每个BVC所分配到的最大数据吞吐量,由此来控制SGSN传送到BVC缓冲区的BSSGP UNITDATA PDU数据流。同时,BSS指示SGSN对应一个TLLI的最大数据吞吐量,由此来控制传送到BVC缓冲区的BSSGP UNITDATA PDU数据流,这个数据流是对应于某个MS。 BSS以流量控制来调整BVC缓冲区的BSSGP UNITDATA PDU数据流。优化在BSS中缓存的BSSGP UNITDATA PDU的总量,从而使无线资源得到高效的利用。在BSS缓冲区里排队的BSSGP UNITDATA PDU,一旦这个PDU的lifetime结束后还没有在无线接口上传送出去,那这个PDU数据在BSS里被删除,当PDU被删除以后,BSS将通过LLC-DISCARDED PDU通知SGSN。 当SGSN接收到一个FLOW-CONTROL PDU后,它将在Gb接口上发送一个确认消息给BSS。这个确认消息包含一个与BSS发送的FLOW-CONTROL PDU中所包含的相同的标签。在BSS没有收到FLOW-CONTROL PDU的消息的情况下,重复发送FLOW-CONTROL PDU的次数应当由BSS掌控。
3.SGSN到BSS的流量控制 3.1 SGSN侧下行吞吐量控制
BSSGP层流量控制的规则:BSS需要发送流量控制的参数到SGSN,这个参数的作用是SGSN能够控制从SGSN至BSS的传输量。SGSN的流量控制有两方面:针对MS的流量控制和针对BVC的流量控制,SGSN对每个LLC-PDU先进行针对MS流量控制,如果MS流量控制得到了执行,而后再针对BVC流量控制,如果两次流量控制都被执行,LLC-PDU就能成功传送到BSS。具体过程见图3.1。 图3.1 流量控制示意图 从BSS发送到SGSN的流量控制的参数分为以下两个方面: -分配给MS或BVC的缓冲容量(Bmax) -分配给MS或BVC的缓冲速率(R) 当SGSN收到一个FLOW-CONTROL-MS的消息,可以得到Bmax和R值,然后SGSN可以针对单个MS来流量控制,时间为Th秒。当记数器Th超时或MS占用了另一个服务小区,SGSN重新初始化针对每个MS的流量控制的参数,并开始使用SGSN自己产生的Bmax和R的数值。 BSSGP层流量控制模式算法见图3.2。 图3.2BSSGP流量控制算法 3.2 流量控制的算法 由SGSN来实行流量控制的算法,这样SGSN不会发送给BSS比缓冲区剩余容量大的数据。 图3.2中的各种变量: -Bmax Bucket Size:最大缓冲容量,是在BSS中设置的一个参数,可以作用于每个小区或MS。Bmax必须大于前一个LLC-PDU的容量(bit) -R:缓冲流速 -B:缓冲区容量 -B *:预知的缓冲区容量 -L(p):LLC-PDU的比特长度 -Tp:前一个LLC-PDU传送出去的时刻 -Tc:LLC-PDU到达的时刻 SGSN中部分变量的初始值: -Bmax=0,对于BVC的流量控制,一旦SGSN收到了一个FLOW-CONTROL-BVC后Bmax会改变;对于MS的流量控制,SGSN收到FLOW-CONTROL-BVC里的Bmax-dafault-MS参数后Bmax会改变。 -R=0,对于BVC的流量控制,当SGSN收到了一个FLOW-CONTROL-BVC后R会改变;对于MS的流量控制,SGSN收到FLOW-CONTROL-BVC里的Bmax-dafault-MS参数后R值会改变。 -B=0,SGSN只有收到了BSS发来的FLOW-CONTROL-BVC消息后才会发送一个BVC上的LLC-PDU。 在SGSN中,当一个LLC-DPU在Tc时刻到达,预知缓冲区容量B*将会被计算出来并发送给BSS。B*=B+L(p)-R*(Tc-Tp),也就是当前缓冲区容量B(也就是前一个LLC-PDU的长度)加上当前LLC-PDU再减去前后两个PDU间隔时间中缓冲区的流量。当B*<L(p)时,说明B-R*(Tc-Tp)是负值,这就意味着在当前LLC-PDU到达BSS时,BSS的缓冲区是空的,那么只要将B=L(p)后就能完成BSS对LLC-PDU的缓冲,LLC-PDU也就能顺利通过BSS而不会被延迟,同时SGSN会将当前LLC-PDU的Tc作为下一个LLC-PDU的Tp,即Tp=Tc; 如果B*>L(p)时,说明B-R*(Tc-Tp)是正值,也就表示当前的LLC-PDU到达BSS时,BSS的缓冲区还有一部分前一个LLC-PDU数据没有传送出去,根据算法将会判断B*是否大于Bmax,如果大于,将会延迟发送这个LLC-PDU,因为BSS无法提供足够大的缓冲空间给这个LLC-PDU;如果小于Bmax的话,就使B=B*,也就是当前LLC-PDU的长度加上前一个LLC-PDU在缓冲区内还没有发送出去的长度,这样的话就保证了当前LLC-PDU能够顺利的进入缓冲区并不延迟的通过BSS,同时SGSN会将当前LLC-PDU的Tc作为下一个LLC-PDU的Tp,即Tp=Tc。 由于Bmax和R两个参数直接影响了LLC-PDU在Gb接口上传送的速率和容量,是流量控制和Qos的重要参数。其余变量B*,B,Tc,Tp由SGSN自己计算产生。 在SGSN收到了BSS发来的流量控制的请求后,在100ms内作出相应的下行传输变动。 3.3 流量控制中碰到的几种情况 当SGSN收到了FLUSH-LL-ACK PDU消息后,将使B=max(B-N,0),N值在FLUSH-LL-ACK PDU中提供给SGSN,表示在无线部分中无法传送的字符长度,而B-N部分的数据将仍旧由当前BVC上传送。同时在新产生的BVC流量控制上,SGSN使B=min(B+N,Bmax),在新的BVC上会将先前无法传送的那部分数据重新发送。 当SGSN收到了LLC-DISCARDED PDU消息后,使B=max(B-N,0),N值在LLC-DISCARDED PDU消息提供给SGSN,表示LLC-PDU在无线部分将会被丢弃的数据长度,所以SGSN只需传送B-N的数据给BSS。 BSS会随时通过FLOW-CONTROL PDU(分为FLOW-CONTROL-BVC和FLOW-CONTROL-MS)消息提供给SGSN新Bmax和R,SGSN依此进行更新。 3.4 FLOW CONTROL MS和FLOW CONTROL BVC发送频率 FLOW CONTROL MS和FLOW CONTROL BVC发送频率遵守以下规则:BSS每隔C秒发给SGSN一个FLOW CONTROL PDU,C值必需在BSS和SGSN中都有设定。 当BSS发现SGSN漏发FLOW CONTROL ACK消息,并且在BSS侧发送一个FLOW CONTROL PDU的条件还能满足,BSS会立即重发一个FLOW CONTROL PDU给SGSN。只有在这种情况下,BSS才不会遵守“每隔C秒发一次FLOW CONTROL PDU”的规则。 3.5 FLOW CONTROL PDU 基于流量控制规则,一个BSS发送到SGSN的FLOW-CONTROL PDU必需包含以下信息元: a.BVC流量控制 -BVC流量控制的Bmax -R -Bmax-dafault-MS -R-dafault-MS b.MS流量控制 -TLLI -MS流量控制的Bmax -R 3.6 初始FLOW CONTROL BVC后的MS Bmax值 SGSN收到了初始的FLOW CONTROL BVC,会根据以下等式产生一个初始的MS的Bmax。 Bmax(bit)=min(R_default_MS*1sec,72000,1秒内MS的最大的吞吐量,(1秒内MS的最大的吞吐量+当前1秒内小区内其他MS的吞吐量)/小区内的MS数) 在SGSN收到FLOW-CONTROL-MS消息前,SGSN使用的Bmax不会大于Bmax_default_MS,R不会大于R_default_MS,直到SGSN从FLOW-CONTROL-MS消息里得到新的Bmax和R。 |