刘 晖
摘 要:分析了移动No.7信令网中MTP、SCCP环路现象及形成的原因,对GSM移动通信网中特有的其他形式的环路现象也进行了分析。文中所描述内容对于移动No.7信令网的网络建设和网络维护工作将起到一定的借鉴作用。
关键词:移动No.7信令网 信令关系 环路 MRVT SRVT
No.7信令网是GSM移动通信网络的神经中枢,它运行得好坏直接关系到通信网络的服务质量。目前,中国移动通信集团已经建成了独立的信令网络,网络为一、二级混合结构,除某些大省建有独立的HSTP、LSTP外,其余各省的HSTP/LSTP均合设在一起。信令网采用A、B平面组网,同平面间的HSTP网状相连,不同平面间省内的一对HSTP互连。由于移动通信的迅速发展,各省都相继出现了复杂的网络拓扑结构,因此在移动信令网中各种环路就有存在的可能,一旦满足某些条件,就会产生环路现象,从而影响通信网络的正常运行。
所谓环路,是指信令消息包在具有信令关系的两个或多个信令点之间转发而形成循环,笔者认为从广义上理解环路现象更恰当,即同一信令消息包经过若干次转发后又回到其中的一个转发点。环路的后果有:因信令包的循环,不能完成正常呼叫;将增加额外的信令负荷,可能造成信令拥塞;有些环路消息虽然经过较长路由能到达目的地,但是信令延迟也增大,将影响接续速度。
本文讨论GSM移动信令网中几种信令环路现象:①MTP层环路;②SCCP的环路;③GSM中其他形式的环路。
1 MTP层信令环路
在No.7信令网中,为了提高网络运行的可靠性,常在已有拓扑结构的基础上增加信令关系的冗余,即替换路由。如果信令关系的冗余配置不合理,将产生MTP层环路。下面根据图例详细描述。
图1中点1、2、3、4均具有STP功能,A、B为信令端点。为了简化描述,只考虑信令消息从A到B的情况,消息从B到A也可同理分析。各点到B点的信令路由表如下:
信令源点 信令宿点 可选MTP路由
A B A1、A2
1 B 13、14、12
2 B 23、24、21
3 B 3B、34、31、32
4 B 4B、43、42、41
当消息从A发到B,根据上述MTP路由表,可以得到其中的一个路由组合为:A1、13、32、21、13,消息有可能在点1、3、2之间形成循环后才达到B或在点1、3、2死循环而永远不能达到B。
应该说信令关系冗余的引入是形成MTP层环路的根本原因。因此,在考虑信令替换路由时,不能从网元管理出发,而要从网络管理角度全面考虑,同时网元设备入网时,应该遵循我国《GSM No.7信令技术体制》(以下简称《体制》)中的要求。《体制》中规定,MTP路由分正常路由和替换路由两种;正常路由是未发生故障的正常情况下的信令业务的路由,如果有直达的信令链,则应该将该信令路由作为正常路由,如果无直达信令链,则正常路由为这些可选路由中的最短路由(最短路由指信令消息被中转次数最少的信令路由);替换路由是信令链或路由故障造成正常路由不能传送信令业务而选择的路由。进行路由选择时必须首先选择正常路由,当正常路由故障不能使用时再选择替换路由。按照《体制》要求,上述路由表中3到B点正常路由中就不应该包含32、31,而应该作为替换路由,替换路由的优先级别也应该遵循路由最短的原则。根据《体制》要求首选直达、无直达选最短的原则,路由表修改为:
信令源点 信令宿点 正常MTP路由 第一替换路由 第二替换路由
A B A1、A2
1 B 13、14 12
2 B 24、23 21
3 B 3B 34 32、31
4 B 4B 43 42、41
当信令网络所有信令链路完全正常,信令消息从A到B时,根据修改过的路由表,正常路由中任何一种组合都不可能出现信令消息重复转发的现象,因此不可能有环路存在。但是,当信令网络中某些正常路由中断后,替换路由的引入是不是有形成环路的可能呢?例如发生某些故障如3B、34信令链中断,造成3B、34信令路由不可用,如图2所示。
路由表将被更改为:
信令源点 信令宿点 正常MTP路由 替换MTP路由
A B A1、A2
1 B 13、14 12
2 B 24、23 21
3 B 32、31
4 B 4B 42、41
当信令消息从A到B时,也可能出现A1、13、32、23的路由组合,消息可能在点2、3之间转发,环路也就形成。那么又如何防止故障情况下形成环路呢?实际上这类环路可以预防,ITU的Q.753建议上将这类因替换路由引起的环路称为“伪环路”( pseudo-loop)。为了防止“伪环路”演变成“真环路”,MTP层必须做一些预防性工作,在相关故障路由点上广播TFP消息。对于图2情况,点3必须向所有相邻点1、2广播TFP消息,示意到点B、点4的消息不能从点3转发,点1、点2在收到点3的广播消息TFP后,将针对到B点的消息,使13、23变为不可用路由,这样路由表将最终变为:
信令源点 信令宿点 正常路由 替换路由
A B A1、A2
1 B 14 12
2 B 24 21
3 B 31、32
4 B 4B 42、41
如果消息从A到B,当消息从A到达点1后,点1将首选路由14再到达点4,点4只能选路由4B再到达B。这样信令消息从A到B也不可能出现环路现象。因此“伪环路”可以利用广播TFP来防止其演变成“真环路”。
为了能从网络管理的角度监视环路等一系列情况,ITU在Q.753建议中提出了MRVT(MTP Routing Verification Test)测试方法。该测试方法的主要目的是检查网络中MTP数据的有效性,具体是检测存在的环路、超长的路由、信令关系的双向性检测等,也可以满足一些特殊情况要求,如因TFP消息丢失而形成的环路。这种方法是在检测点发出MRVT消息,通过返回来消息的MRVA(MTP Routing Verification Acknowledgement)分析是否存在环路、是否存在超长路由等信息,再分析MRVR (MTP Routing Verification Result )可以得到环路所经历的信令点等。
因此在组建移动No.7信令网管系统中尤其是复杂的信令网中,应该考虑MRVT检测功能,一旦需求,必须能开启该功能。对于没有No.7信令网管系统的,实际工作中要建立健全网管制度,只要MTP路由数据被修改或引入新的MTP路由都必须注意,都应该按照MRVT的思路去分析路由,避免MTP环路的产生。
2 SCCP层环路
GSM移动通信网络中存在大量与电路无关的消息,这些都是MAP(Mobile Application Part)通过SCCP的功能来完成的。SCCP的地址单元分为3类:GT(Global Title)、DPC(Destination Point Code)、SSN(Subsystem Number)。SCCP的主、被叫方的地址可以是这3种地址单元的任意组合。目前我国GSM网中使用两种寻址方式:DPC+SSN、GT+SSN。
在SCCP中也存在环路现象,而且它是一种与MTP环路无关的环路(即使MTP中无环路,也不能解决SCCP的环路问题),参见图3。
图3为典型的移动信令网络图,其中的1、2、3、4均具有STP功能且全部信令点具有GTT(Global Title Translation)功能,A的GT为Ta,B的GT为Tb,A的点码为PCa,B的点码为PCb,依此类推。为了简化问题,先分析消息从A到B的情况(B到A也类似)。假设点A、点1、点2到B点GT路由表做成如下方式:
信令源点 被叫GT GTT结果
A Tb Tb的GTT为PC1或PC2,GT+SSN寻址
1 Tb Tb的GTT为PC3或PC2,GT+SSN寻址
2 Tb Tb的GTT为PC4或PC1,GT+SSN寻址
(注:ITU规定SCCP的GT翻译结果最多只能两种)
A和B之间有SCCP层的信令关系,当有一消息从A发往B,按上面的路由表,有可能存在如下形式的翻译:被叫Tb在A中的GTT结果是点1并且根据GT再选路由;消息到达点1后、点1对Tb做GTT,GTT结果是点2并且根据GT再选路由;消息到达点2后、点2对Tb做GTT,GTT结果是点1,这时候SCCP的环路就出现了,因为消息包在点1、2之间出现了转发。究其原因,是点1和点2对别的区域内的SP的GT翻译有误而引起。我国移动信令网络较大,其中包含的各省市的GT(用户MSISDN、MSCID、HLRID等)较多,GT翻译做得不正确、不准确,就有可能出现环路或者信令包要被多次转发而造成延迟。另外,如果SCCP的翻译不合理、数据翻译不完全也将造成环路,下面为一实例。某地市的关口局做开局调测时的网络结构见图4。
当时的GT路由表被做成如下形式:
信令源点 被叫GT GTT结果
GMSC 所有GT 所有GT的GTT为PC1或PC2,GT+SSN寻址
HLR Tgmsc Tgmsc的GTT为PChstp1或PChstp2,GT+SSN寻址
HSTP1 Tgmsc Tgmsc的GTT为PCgmsc,GT+SSN寻址
HSTP1 Thlr Thlr的GTT为PChlr,DPC+SSN
HSTP2 Tgmsc Tgmsc的GTT为PCgmsc,GT+SSN寻址
HSTP2 Thlr Thlr的GTT为PChlr,DPC+SSN
由于GMSC是信令端局,所以开局人员将它的GT路由表翻译做得很粗,这样包含了所有GT(包含了所有的MSISDN号段),想是今后不再做任何数据以减轻今后维护量。但是由于该数据也将GMSC的GT送到HSTP翻译(漏洞就在于此)。如果GMSC始发一消息SRI,按上述路由表,GTT结果为PChstp1或PChstp2,到HSTP1或HSTP2后,将Thlr翻译成Pchlr且按DPC+SSN选路将顺利到达HLR,发出消息没有问题;当HLR返回SRI ACK消息时问题出现了,按路由表到达HSTP1或HSTP2且按GT+SSN(GMSC的GT)选路由,到达GMSC后,由于是按GT选路,路由表中GMSC将所有GT翻译到HSTP,这时候环路产生了,消息不停地在HSTP和GMSC之间转发,造成呼叫无法进行。通过仪表分析,发现了该问题。解决办法是要求端局将自己的GT指向自己(纠正错误的GT翻译结果),同时HSTP将翻译结果按DPC+SSN寻址(将GT翻译结果做完全,这样GMSC不再做GTT,可以减小信令延迟),环路情况才得以解决。由此可见,GTT结果正确与否、GTT结果完全与否是引起SCCP环路的根本原因。
为了从网络管理的角度监视SCCP环路的情况,ITU在Q.753建议中,使用SRVT(SCCP Routing Verification Test)方法来检测SCCP环路。检测时是在检测点发送一系列SRVT消息,通过分析返回消息SRVA(SCCP Routing Verification Acknowledgement)、SRVR(SCCP Routing Verification Result),就可以判断环路存在等的情况。
因此在建立GSM移动No.7信令网管系统中尤其是复杂的网络中,应该考虑SRVT检测功能,一旦需求,必须能开启该功能。对于没有GSM移动No.7信令网管系统的,实际工作中要建立健全网管制度,只要SCCP路由数据被修改或引入新的SCCP路由都应该按照SRVT的思路去分析路由,避免SCCP环路的产生。
3 GSM移动网中其他形式的环路
情况①:在GSM的呼叫原理中,由始呼局(GMSC、MSC/VLR)根据用户的MSISDN向HLR发起SRI查询,HLR返回给始呼局的SRI ACK消息中有4种:SRI ACK的结果带有动态漫游号码MSRNGMSC/MSC将完成接续;SRI ACK的结果是普通PSTN号码,GMSC/MSC将完成接续;SRI ACK消息中的结果是用户缺席,则表明用户关机;SRI ACK消息的结果中包含别的移动用户的MSISDN号码,将进行下一次的SRI查询,如果得到的还是MSIDN号码,这种查询会不会无休止地进行下去呢?这由HLR中的参数“HLR前转次数”控制。
若HLR中两用户A、B均有CFU功能,且都激活该功能到对方号码,当GMSC/MSC中有一呼叫到达A,这时GMSC/MSC根据被叫号码A发起查询消息SRI,而HLR中的SRI ACK返回的结果是B的号码,然后GMSC/MSC又根据被叫号码B发起查询消息SRI,得到的结果是被叫号码A,GMSC/MSC又重复这一查询,将造成多次循环。对于关机引起的不可及转移CFNRC也存在类似现象。HLR参数“HLR前转次数”专门控制这种呼叫转移的次数,对于超过“HLR前转次数”的用户,做被叫时将被拒绝。由于中国移动不允许二次呼叫转移,因此各HLR中该参数应该调整为1。当两用户不在同一个HLR中,分析也类似。
情况②:GSM中如果遇被叫用户忙,SRI ACK的结果是上述的哪一种呢?对被叫用户忙的情况,VLR仍然要分配MSRN,因此在用户忙时如果做了呼叫转移,呼叫将从被叫所在拜访局转接。当满足某些条件时,也可能出现无休止的转移。MSC/VLR中的“VLR前转次数”参数可以控制这种情况。
假设用户A、B有CFB功能,且已经激活到对方号码上,A、B之间正在通话,当有第三方的呼叫到达A后,根据遇忙时VLR中也要分配MSRN给用户,而且是在被叫所在MSC中处理的原则,A的拜访局MSC/VLR根据A的CFB条件,以B的MSIDN发起SRI查询,SRI ACK将得到B的MSRN,话路将建立到B的拜访局的话路;而当呼叫到达B后,也会因CFB去查询A的MSRN,去建立到A的拜访局的话路。如此,形成两个局间中继恶性占用,呼叫无应答CFNRY也有类似的情况。尤其要注意的是,HLR中的参数“HLR前转次数”控制不了这种情况。这必须由被拜访局MSC/VLR中的“VLR前转次数”来控制这种转接次数,当在VLR中的呼叫转移次数超过这一参数时,呼叫将在MSC/VLR被拒绝。我们建议该值也取1。
综上所述,在实际工作中,采用以上对策来避免环路的产生,确保No.7等信令网的安全运营,是切实可行的。C+SSN
由于GMSC是信令端局,所以开局人员将它的GT路由表翻译做得很粗,这样包含了所有GT(包含了所有的MSISDN号段),想是今后不再做任何数据以减轻今后维护量。但是由于该数据也将GMSC的GT送到HSTP翻译(漏洞就在于此)。如果GMSC始发一消息SRI,按上述路由表,GTT结果为PChstp1或PChstp2,到HSTP1或HSTP2后,将Thlr翻译成Pchlr且按DPC+SSN选路将顺利到达HLR,发出消息没有问题;当HLR返回SRI ACK消息时问题出现了,按路由表到达HSTP1或HSTP2且按GT+SSN(GMSC的GT)选路由,到达GMSC后,由于是按GT选路,路由表中GMSC将所有GT翻译到HSTP,这时候环路产生了,消息不停地在HSTP和GMSC之间转发,造成呼叫无法进行。通过仪表分析,发现了该问题。解决办法是要求端局将自己的GT指向自己(纠正错误的GT翻译结果),同时HSTP将翻译结果按DPC+SSN寻址(将GT翻译结果做完全,这样GMSC不再做GTT,可以减小信令延迟),环路情况才得以解决。由此可见,GTT结果正确与否、GTT结果完全与否是引起SCCP环路的根本原因。
为了从网络管理的角度监视SCCP环路的情况,ITU在Q.753建议中,使用SRVT(SCCP Routing Verification Test)方法来检测SCCP环路。检测时是在检测点发送一系列SRVT消息,通过分析返回消息SRVA(SCCP Routing Verification Acknowledgement)、SRVR(SCCP Routing Verification Result),就可以判断环路存在等的情况。
因此在建立GSM移动No.7信令网管系统中尤其是复杂的网络中,应该考虑SRVT检测功能,一旦需求,必须能开启该功能。对于没有GSM移动No.7信令网管系统的,实际工作中要建立健全网管制度,只要SCCP路由数据被修改或引入新的SCCP路由都应该按照SRVT的思路去分析路由,避免SCCP环路的产生。
3 GSM移动网中其他形式的环路
情况①:在GSM的呼叫原理中,由始呼局(GMSC、MSC/VLR)根据用户的MSISDN向HLR发起SRI查询,HLR返回给始呼局的SRI ACK消息中有4种:SRI ACK的结果带有动态漫游号码MSRNGMSC/MSC将完成接续;SRI ACK的结果是普通PSTN号码,GMSC/MSC将完成接续;SRI ACK消息中的结果是用户缺席,则表明用户关机;SRI ACK消息的结果中包含别的移动用户的MSISDN号码,将进行下一次的SRI查询,如果得到的还是MSIDN号码,这种查询会不会无休止地进行下去呢?这由HLR中的参数“HLR前转次数”控制。
若HLR中两用户A、B均有CFU功能,且都激活该功能到对方号码,当GMSC/MSC中有一呼叫到达A,这时GMSC/MSC根据被叫号码A发起查询消息SRI,而HLR中的SRI ACK返回的结果是B的号码,然后GMSC/MSC又根据被叫号码B发起查询消息SRI,得到的结果是被叫号码A,GMSC/MSC又重复这一查询,将造成多次循环。对于关机引起的不可及转移CFNRC也存在类似现象。HLR参数“HLR前转次数”专门控制这种呼叫转移的次数,对于超过“HLR前转次数”的用户,做被叫时将被拒绝。由于中国移动不允许二次呼叫转移,因此各HLR中该参数应该调整为1。当两用户不在同一个HLR中,分析也类似。