电信3G-evdo 信令详解

更新时间:2024-05-14 19:06:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

【杭州】3G上网信令揭秘

本文整理了3G上网在BSC上跟踪的信令全过程,对A11、A12接口信令做详细解析。另外,跟踪了3G连接时直接拔卡、直接关机等状态下信令,和产生的原始话单、计费话单进行对比,证明休眠时间不计费、直接拔卡关机均计费正常,并解析AAA正确得出用户休眠次数和激活上网时间的话单原理。

从测试到整理成文,我用了一个多月的时间。除了自己懒、上班时间没空整理文章等因素外,更多的原因是我真的花了很多时间去悟透BSC上跟踪到的DO上网信令。所以请相信这篇文章值得对3G感兴趣的你花时间去看。共享给大家,希望对你排障有所帮助。

感谢华为工程师帮忙修改,7月21日根据建议修改本文。加附件5,附件5是本文原稿加工程师批注,批注的内容正是我没注意的细节,没时间看本文的同志可下载附件5后查看。

一、理论知识

在解析DO上网信令之前,先介绍一下分组域网络架构和相关接口,因为在跟踪到的信令中涉及到各接口,DO网络架构如下所示:

CDMA分组域系统采用省中心模式,所有核心设备(PDSN、AAA、ANAAA)都放置在杭州。地市PCF(Packet Data Serving Node,可和BSC合设,也可是单独的设备。例如华为BSC合设PCF,北电是单独的设备RNC/PCF)通过网络设备汇聚后接入杭州的CE,通过CE访问PDSN和AAA等网元。

上图中,AT(Access Termination)是接入终端,例如手机或者上网卡;BTS是基站,BSC是基站控制器。分组域核心设备包含PDSN、AAA、ANAAA。PDSN (Packet Data Serving Node)是分组数据服务节点,是CDMA 分组网里的关键设备,它完成和无线网络(PCF)及IP网络的接口,起着桥梁的作用,PDSN和移动

终端建立PPP连接,把终端来的PPP的数据转换成标准的IP数据,路由到IP网络,同时,将网络来的IP数据封装在PPP里传送给终端,将PCF来的计费参数和自身统计的计费参数结合形成UDR格式传送给AAA;AAA(Authenticaion,Authorizaion and Acounting)对用户发起的业务进行认证、授权、计费消息采集、计费详单文件的生成,它根据用户名判断用户申请的业务类型,每个用户名代表一种业务,如用户名WAP代表用户申请WAP业务的连接,另外AAA根据用户名判断是否需要向业务网关发送计费消息,根据IMSI判断是否向归属地发送计费消息;AN-AAA是3G阶段新增加的鉴权接入设备,执行3G设备的接入认证和授权功能,在CDMA1X网络中不需要这个网元。

另外HA--Home Agent是归属地代理,负责和PDSN/FA建立Mobile IP隧道,负责解封装从反向隧道中传来的用户数据,路由到Interne。该设备在Mobile IP网络中存在,在Simple IP网络中不存在。当前现网是Simple IP网络,因此在浙江分组域网络里不存在该设备。

上图包含如下接口:

Um:空口,是终端和基站之间的接口。部分终端在BSC上无法跟踪到任何信息,因为问题终端根本没有上发空口消息,或者消息没有到BSC这一层。可用QXDM软件跟踪到终端发送和接收到消息,但该软件如何跟踪我不会用,希望会用得同志共享。

Abis:连接基站BTS和基站控制器BSC。

A8、A9:BSC内部接口,和PCF交互接口。A8是业务数据传递,A9传输信令消息。

A10、A11:PCF和PDSN接口。A10是用户业务通道,A11走信令消息。 A12:PCF与AN-AAA之间用于接入认证的信令通道接口。

另外1X网络还有BSC和MSC之间的A1口:用于传输MSC(呼叫控制和移动性管理功能)和BSC之间的信令消息。

当CDMA 1X用户拨号时,BSC内的PCF经A11口向PDSN发送建链请求,PDSN向AAA发送用户的认证请求,通过认证后PDSN给用户分配IP地址,PCF和PDSN之间建立PPP链接,用户可访问INTERNET网络。当3G用户接入时,PCF先通过A12接口向ANAAA发送接入请求,ANAAA通过用户认证后,PCF向PDSN送建链请求。另外ANAAA和HLR之间有2M线连接,以获取HLR上用户的SSD数据做用户接入认证。可见3G用户上网在分组域的认证和CDMA 1X类似,唯一的区别是:1X网络中是要先往MSC(HLR)发起基于设备的认证,DO是发起到ANAAA的基于设备的接入鉴权认证。

二、实际信令跟踪解析

BSC上跟踪信令见附件1。其中第1~263行是插入上网卡的位置登记过程,第264~304行是拨号过程,第305~2419行是DO上网过程中跟踪到的信令,第2420~2436行是断开连接时的信令。MSCE上跟踪到的信令见附件2,只在插入上网卡的位置登记过程中跟踪到相关信令(1X网络接入请求,做位置登记)。现对各过程重要信令进行解析。

在插卡1X 位置登记、3G接入认证过程,详解A12接口到ANAAA认证的信令; 在拨号过程,详解到PDSN的A11接口信息;

在上网过程,解析从激活进入休眠态、从休眠进入激活态的信令,主要解析A11接口信息;

断开连接后,解释AAA产生的原始话单各字段含义,并和企信部最终的话单进行对比,和BSC实际跟踪到的相关信息进行比对,证明休眠时间不计费,只计费激活时间。

1、插卡时,1X 位置登记、3G接入认证过程

在用户终端设置成仅DO模式时只有3g网络的接入鉴权,终端只有在混合模式的时候才会发生1x网络的接入鉴权。一般上网卡默认是混合模式,早期个别自带的客户端可设置仅DO的模式。智能手机上可设置混合模式和仅DO模式。 当前测试终端是上网卡,用集团公司统一客户端,默认混合模式状态下,因此在插入上网卡或者3G手机开机时,同时向1X网络做位置登记、向3G网络做接入鉴权认证:

? BSC通过A1口向MSCE注册1X网络:

需要说明的是,1X和DO的鉴权是独立的过程,即使在1X位置登记过程没有成功,也不影响以下DO的鉴权。例如:最初杭州首次拨通DO时,就是用6850仅开通DO功能的帐号拨测。

有条件的话,感兴趣可做如下测试验证:省内漫游号码未开通漫游功能,则在A1口会拒绝位置登记请求(原因是漫游不允许),不能1X上网;跟踪A12口则将发现BSC仍旧向省ANAAA平台发送认证请求,只要用户DO功能正常开通,则全省共用的ANAAA平台会通过用户认证。 ? BSC通过A12口向ANAAA注册3G网络:

双击第255行,查看A12口接入请求携带的信息:

由上可知向A12口发送的是用户的ESN、用户名、32位鉴权随机数和鉴权值,并不包含IMSI(虽然user-name字段由IMSI和域组成,但并不代表是IMSI字段),因此在BSC上跟踪A12口要根据ESN跟踪。鉴权值是这样获得的:对于MD5算法用户,初始值是NAI(用户名)、鉴权随机数、鉴权密码通过MD5算法获得的值;对于CAVE算法用户,初始值是IMSI、鉴权随机数、SSD、ESN(或者MEID)通过CAVE算法获得的值。另外从A12接口消息可见SSD并不在网络中传播的,分别在UIM卡和HLR或者ANAAA中有保存。

A12返回的消息A12_Access_Acept是通过请求,具体消息如下:

A12认证通过时,返回callback-id,该值是在ANAAA设置,每个帐号对应一个callback-id,即IMSI。BSC返回的A12信息里,callback-id每两位一组,第一组不读,均看每组的第二位,得到IMSI:460036060588576。

? MSCe侧跟踪到的1X网络位置登记信息

总结:(1)插卡或者开机过程,通过A1口向1X网络做位置登记,通过A12口向3G网络做认证请求;

(2) 无论是MD5算法还是CAVE算法,A12口上报参数都一样的,包含:ESN、用户名、鉴权密码、32位鉴权随机数、鉴权 auth值。ANAAA保存的数据包含:用户名、密码、ESN、SSD(如果HLR上设置用户SSD共享,则ANAAA保存SSD)。

如果用户是MD5算法,则终端根据NAI(用户名)、鉴权随机数、鉴权密码做为算法初始值,MD5算法得到鉴权值,ANAAA也根据保存的用户名、密码参数以及网络上传的随机数用MD5算法得到鉴权结果,和终端上传得鉴权值比对,一致则通过鉴权。

如果用户是CAVE算法,则终端根据NAI、鉴权随机数、SSD、ESN(或者MEID)做为算法初始值,CAVE算法得到鉴权值,ANAAA也根据保存的用户名、ESN、SSD参数以及网络上传的随机数通过CAVE算法得到结果,和终端上传的鉴权值比对,一致则通过鉴权。

(3)注意reject消息,例如:[A12] A12 Acess Reject。说明是A12接口拒绝接入,DO鉴权不通过。双击该reject消息,可查看相关原因(例如用户不存在)。 例如:A12-Access Reject拒绝消息如下:

拒绝原因是A12-Access Request里的Hardware ID值错误。双击认证请求A12-Access Request消息可查看到Hardware ID(ESN)值。双击A12-Access Request可以看到最下面Hardware ID信息(如下图所示)。这是因为部分终端上报了终端本身的ESN,而不是UIM卡的ESN,和ANAAA所存ESN不一致,因此拒绝。(此拒绝消息仅在后期ESN绑定认证DO时才会出现。当后期ESN绑定时,ANAAA在比对鉴权值之前,需要比对A12接口上报的HardwareID/esn和ANAAA所存的ESN,若不一样则拒绝。当前网络没有绑定ESN,则只需比对鉴权值)

MD5算法认证失败,则肯定是密码错误。因为MD5算法的初始值只有用户名和密码,若用户名有误不存在,会有user not exit的拒绝提示。

(4)之所以详细介绍A12信令,因为这是DO和1X上网的唯一区别。若用户能上1X不能上DO,则只需跟踪A12接口。但发现有些上网卡(主要是华为的所有上网卡)A12接口上报的ESN是上网卡终端的,而非UIM卡号码对应的ESN。此时需跟踪该终端的ESN,而非跟踪号码的ESN。另外6800等插卡的水货机,需跟踪UIM卡号码对应的ESN。

2、 拨号过程

附件1第264~304行是拨号过程。现网中,各地市PCF经CN2和分组域核心网相连。现网当前有多台PDSN负荷分担工作,由两台FACN(Foreign Agent Control Node)服务器来实现对PDSN集群控制:PCF侧配置FACN的地址来指向FACN,同时配置PDSN路由。当终端发起一次数据业务时,PCF第一次通过A11接口向FACN发送注册请求,FACN回复PDSN地址给PCF,PCF再次通过A11 接口向FACN指定PDSN发送注册请求。

实际BSC上跟踪如下所示,和理论一致:

IMSI在A12接口是不上报的,在A11接口请求消息里才有。A12鉴权通过时

ANAAA会返回用户的IMSI(上面已给出,即A12消息里的callback-id),A11接口上报的IMSI就是从A12回应消息中获取的。双击第276行可以看到IMSI:

发现第283行A11接口请求类型是activetype。即对应airlink recort type值为2时,是激活请求。告知PDSN用户属于激活态。

总结:拨号过程在BSC侧可查看到A11接口发送的信息,IMSI在此消息中上报。若碰到用户投诉不能上网,我们可查看A11接口有无向PDSN发送消息,若有则需要省网运核心网PDSN、AAA侧跟踪消息查看原因。

3、 上网过程

附件1第305~2419行是DO上网过程中跟踪到的信令,主要是空口、Abis口、A9、A11口上的信息,期间有终端休眠行为的信令。

在BSC上可设置休眠时间,BSC上执行“LST DOSDUPARA”命令,可查看BSC侧设置的DO进入休眠的时间,例如查看某BSC的2框配置数据,执行LST DOSDUPARA: FN=2;可看到结果中有: 去激活定时器长度(秒) = 30

说明设定进入休眠时间是30秒。

休眠时,终端和基站之间不存在空中业务信道,断开空口(Um,手机和基站接口)、Abis口(基站和基站控制器接口)、A8 (BSC内部和PCF的接口),保持终端、接入网AN之间的session,保持终端、接入网AN、PDSN之间的PPP链接(即状态保持),另外A10接口保持。以下是一次进入休眠时的相关信令:

本次上网过程共有10次休眠,对应Abis口释放消息:第329行、第587行、第610行、第869行、第1119行、第1370行、第1621行、第1654行、第1916行、第2168行。对应有10次激活。和后面AAA话单数据一致。

从休眠状态进入激活态包括Um口、Abis口、A8口的建链请求消息,例如第551行到566行:

每次从休眠态进入激活态均有A11信息,类型是激活。由于进入激活和休眠均有A11信息上发到PDSN,这样PDSN就知道用户整个上网过程的激活时间。

总结:上网过程中,用户反复进入休眠、激活,进入休眠时断开空口(Um,手机和基站接口)、Abis口(基站和基站控制器接口)、A8口(BSC内部和PCF的接口),只保持Session;从休眠状态进入激活态包括Um口、Abis口、A8口的建链请求。每次进入休眠或者进入激活态,均有A11接口请求消息,请求类型不一样(激活或者停止)。

4、 断开连接过程

附件1第2420~2436行是断开连接的信令,包括Um口、Abis口、A8、A10口的断开消息。A11消息如下:

这条消息和进入休眠态消息的airlinkrectype值一样,但A11消息有所区别,断开链接

的A11请求里uslifetime的值为0:

对A11接口信息做如下总结:

不管是始呼、拆线,还是切换,每次建立PPP连接,或者拆PPP连接,BSC都会上报一条A11 Registration Request消息,里面的CVSE部分会带一个

airlinkrectype字段,共有3种值:Y1=1,setuptype类型表示PPP连接建立了;Y2=2,activetype表示业务信道建立了,终端激活态开始计费;Y3=3,stoptype表示业务信道拆除了,终端进入休眠态结束计费。 终端的状态分3种:

空闲态:没有拨号的时候。这时空口和PPP都是不存在的。 休眠态:没有数据传送的时候。这时没有空口,但是有PPP。

激活态:既有空口又有PPP,这个阶段才会计费。 对应这几种状态间的切换:

1)空闲态拨号即进入激活态,这时会有两条A11消息,分别记录Y1和Y2,Y1代表PPP连接,Y2代表激活态开始计费;

2)用户从激活态进入休眠态,也会发生一条A11消息,记录为Y3,代表进入休眠态,结束计费拆除业务信道; 3)用户从休眠态到激活态,会产生一条消息,记录为Y2,代表终端进入激活态,开始计费;

4)用户拆掉PPP连接,或者PDSN/BSC检测到用户掉网,则记录Y3,代表结束计费。并根据uslifetime=0告知PDSN可出“终止话单”。 根据开始计费和结束计费的A11请求,PDSN由Y2、Y3的时间算得激活时间,最终告知AAA激活时间、休眠次数等相关字段产生正确的计费话单。 进入休眠态和断开链接的airlinkrectype字段值一样,但是uslifetime值不一样,为0时是断开链接产生话单。

5、 产生话单

整个上网过程大致经过18分钟,在AAA产生3条话单:起始话单、中间话单和结束话单,具体话单如下:

AAA_01_20090601_1440_3829.TXT:8149 1 0 1 8615306514128 460036060588576 122.229.109.244

ctnet@mycdma.cn I3nJAAAB I3nJAEaQ 1 1|1 0.0.0.0 115.168.12.43 172.26.68.10

3729000B1131 460030 0 59 1 0 0

1243838921 0 0

0 0 0 0 0 1 AAA_01_20090601_1500_3831.TXT:3395 3 0 1 8615306514128 460036060588576 122.229.109.244

ctnet@mycdma.cn I3nJAAAB I3nJAEaQ 1 1|1 0.0.0.0 115.168.12.43 172.26.68.10 3729000B1131 460030 0 59 1 0 0 4727002 162811 0 1243839821 481 8 0 0

1243839821 0 0 0 0 0 0 0 1 900 4727002 162811

AAA_01_20090601_1500_3831.TXT:6524 2 0 1 8615306514128 460036060588576 122.229.109.244

ctnet@mycdma.cn I3nJAAAB I3nJAEaQ 0 1|1 0.0.0.0 115.168.12.43 172.26.68.10 3729000B1131 460030 0 59 1 0 3 0 4729206 162883 0 1243840002 597 10 0 0

1243840002 0 0 0 0 0 0 0 1 1081 4729206 162883

第2个字段有1、2、3三种值:1代表开始话单,2代表结束话单,3代表中间话单。产生中间话单的时间是在PDSN侧设置的,现设置15分钟产生一条中间话单。一般计费看结束话单即可,包含时长流量等信息。

三条话单各字段均符合相同的定义,现对结束话单的关键字段做解释(红色字体)。

2:话单第2个字段是计费状态,2代表结束话单,另外其他对应值1代表开始话单,3代表中间话单。

0:话单第3个字段是漫游类型,0代表本地,另外其他对应值1代表省际漫入,2代表省际漫出,3代表国际漫入,4代表国际漫出。

1:话单第4个字段是付费类型,1代表普通,另外其他对应值0代表未知,2代表预付费,3代表内容计费,4代表内容计费的预付费。

8615306514128:话单的第5个字段是用户号码。 460036060588576:话单的第6个字段是用户IMSI号码。 122.229.109.244:话单的第9个字段是用户获得的IP地址。

ctnet@mycdma.cn:话单的第10个字段是网络接入标识,即用户帐号。 0:话单的第15个字段是会话继续标示,0代表是最后一条话单,另外1代表不是该会话的最后一条话单,还有后续话单,因此开始话单中间话单该字段都是1。

115.168.12.43:话单的第20个字段是PDSN地址。

172.26.68.10:话单的第21个字段是服务PCF地址。每个地市PCF地址不同,以此也能区分各个地市。

3729000B1131:话单的第22个字段是基站标识BSID,由SID、NID、CELLID组成,均是16进制的。杭州SID是3729,NID是000B,113是基站,1是扇区。

59:话单的第28个字段是所用CDMA网络类型,59代表EVDO。另外33代表CDMA1X。

1:话单的第29个字段是IP技术类型,1代表简单IP。另外2代表移动IP。 4729206:话单的第35个字段是发送给用户的字节数,即用户接收字节数,下行流量。

162883:话单的第36个字段是用户发起的字节数,即上行流量。 1243840002:话单的第38个字段是事件时间戳。是从1970年1月1日0时0分0秒开始计数,每一秒加1。开始话单的时间戳是1243838921,中间话单是1243839821,相隔900秒(和15分钟产生一条中间话单的设置一致),结束话单是1243840002,用户总时长为1243840002-1243838921=1081秒。

597:话单的第39个字段是激活时长。休眠态不计费,实际计费按照用户的激活时长597秒,而不是总时长1081秒。

10:话单的第40个字段是激活转换次数,即一次PPP连接中从休眠状态到激活状态转换的次数。本次上网总共经历了10次休眠和激活。

1243840002:话单第43个字段是用户最后一次激活时间戳。

1081:话单的第54个字段是会话时长,包括激活时长和休眠时长,结束话单与开始话单时间戳的差值一致。

4729206:话单的第55个字段是用户发出的上行包数。该字段现有问题,取了下行字节数,应在后期升级改进中。

162883:话单的第56个字段是PDSN发送给用户的包数,即下行包数。该字段现有问题,取了上行字节数,应在后期升级改进中。

企信部销账平台取的实际计费话单:

用户通话所

业务类型 计费类型 日期时间 通信所在地 时长 在CELLID

流量(KB) ctnet@mycdma.cn

按时长计费

2009-6-1 14:56

杭州

9分57秒

0

4777

费减用 免1

1

从上表实际计费话单可以看出实际计费时长确实是按照激活时长597秒计算的,另外流量是按照上下行总流量计算的:(4729206字节+162883字节)/1024=4777KB。

另外值得注意的是,此处的日期时间既不是开始拨号的时间,也不是结束的时间,而差不多是开始上网的时间加上计费时长。(这样的计费时间是否不合理?有时候认真的用户容易较真,认为自己此时间没有上网。建议AAA或计费部门再测试确认一下)

三、直接关机、直接拔卡测试

以上已测试证明了用户休眠状态下是不计费的。另外用户可能关注:上网连接时没有断开,直接关机或者直接拔卡会怎么样。以下测试直接拔卡和直接关机情况。

1、直接拔卡测试跟踪见附件3。对应时间动作如下:

15:06插卡,见第1~277行。15:15:26拨号,见278~307行。上网过程见308~2308

行。15:32:20直接拔卡2308行之后就是拔卡后的消息。可见拔卡后进入休眠,第2313行A11消息如下:

之后有很多寻呼消息,一直到15:34:59发送A11消息结束。 对应AAA产生话单如下:

9873 1 0 1 8615306514128 460036060588576 122.229.72.151 card TF6OAAAB TF6OAEnd

1 1|1 0.0.0.0 115.168.12.37 172.26.68.10

3729000B1131 460030 0 59 1 0 0 1246518927 0 0

0 0 0 0 0 1

36 3 0 1 8615306514128 460036060588576 122.229.72.151 card TF6OAAAB TF6OAEnd 1 1|1 0.0.0.0 115.168.12.37 172.26.68.10 3729000B1131 460030 0 59 1 0 0 8256 9409 0 1246519827 345 8 0 0 1246519827 0 0 0 0 0 0 0 1 900 8256 9409

8393 2 0 1 8615306514128 460036060588576 122.229.72.151 card TF6OAAAB TF6OAEnd 0 1|1 0.0.0.0 115.168.12.37 172.26.68.10 3729000B1131 460030 0 59 1 0 3 0 8982 9409 0

1246520099 399 10 0 0 1246520099 0 0 0 0 0 0 0 1 1172 8982 9409

因为上网过程超出15分钟,因此产生3条话单:开始话单、中间话单、结束话单。产生结束话单的时间戳是1246520099,产生开始话单的时间戳是

1246518927,相差1172秒(折合19分钟32秒),说明并不是拔卡后马上产生话单,而是需要两分钟左右的寻呼之后再产生话单(即BSC跟踪到最后一条A11请求消息里uslifetime值为0时才出话单)。但虽然产生话单的时间后移,并不影响多计费,因为拔卡后马上进入了休眠状态,之后没有激活A11消息,休眠态不计费。

2、直接关机测试跟踪见附件4(只有1~955行,时间16:02:11截止。之后16:42:32是我另外其他的上网,忘了关跟踪~~~)。对应时间动作如下:

15:52:57插卡,见1~276行信令。15:53:40开始拨号,见278~306行。307~921行是上网过程产生的信令。16:02:06开始关机,关机过程产生信令922~955行,几乎都是同时产生的,发现和正常断开信令一样:第935行的A11

消息是激活消息,是先激活再马上断开;第941行发送的A11消息是断开消息,

uslifetime=0,告知PDSN可出话单(PDSN告知AAA出话单),如下:

AAA话单如下:

7504 1 0 1 8615306514128 460036060588576 122.229.83.167 card THOOAAAB THOOAD2K 1 1|1 0.0.0.0 115.168.12.39 172.26.68.10

3729000B1131 460030 0 59 1 0 0

1246524302 0 0

0 0 0 0 0 1

12176 2 0 1 8615306514128 460036060588576 122.229.83.167 card THOOAAAB THOOAD2K 0 1|1 0.0.0.0 115.168.12.39 172.26.68.10 3729000B1131 460030 0 59 1 0 3 0 272 4221 0

1246524477 130 3 0 0 1246524477 0 0 0 0 0 0 0 1 175 272 4221

可见出结束话单是即时的,这从BSC跟踪就已看出一关机就产生A11结束话单的消息。

总结:直接拔卡AAA会延迟出结束话单,但并不影响计费。因为一拔卡就马上进入休眠状态,之后经过两分钟多的寻呼后,产生结束话单。但休眠态不计费,因此之后的时间并不计费。

直接关机和点断开效果一样,会马上产生结束话单的命令。可能是关机时电脑会正常断

开连接。

本文来源:https://www.bwwdw.com/article/whz7.html

Top