如何根据一个基站的lac和cellid区分这个基站是2G,3G还是4G基站,这里做一下总结。
国内运营商在建网初期就对LAC代码按省进行了分配,每个省/自治区/直辖市都分配到了一定数量的LAC代码区间。当时的2G网络规定了LAC使用的是BCD编码,所以2G的LAC范围是十六进制的[0x1000-0x1999], [0x2000-0x2999], [0x3000-0x3999]…, [0x9000-0x9999],这一范围对移动联通都适用。
到了3G时代,没有了LAC必须是BCD编码的限制,同时为避免冲突,WCDMA和TD-SCDMA分配了[0xa000-0xffff]的区间分配3G网络的LAC。
4G网络中,LAC被TAC(Tracking Area Code)取代,TAC的分配方式和2G网络下的LAC分配保持一致。那么如何根据这个值区分2G和4G基站呢?这就需要借助CELLID(ECI)字段了,在2G网络中CELLID定义为16位二进制值,范围是[0-65535],4G网络的ECI是28位的二进制值,由20位的enodebid和8位的cellid组成,而enodeb id是大于256的,因此可以通过判断CELLID(ECI)字段的值来区分2G基站和4G基站。
总结:
LAC(TAC)>=40960 -> 3G基站
AC(TAC)<40960 并且 CELLID(ECI) > 65535 -> 4G基站
LAC(TAC)<40960 并且 CELLID(ECI) <= 65535 -> 2G基站