51学通信技术论坛

标题: A.1-GPRS网络中SS7协议栈的MTP部分 [打印本页]

作者: 爱卫生    时间: 2011-4-25 22:27:31     标题: A.1-GPRS网络中SS7协议栈的MTP部分

本帖最后由 爱卫生 于 2012-10-15 20:14 编辑

   前面提到,在GPRS网络中的SS7协议栈包括两个部分。第一部分消息传递部分MTP负责底层的承载。第二部分就是用户部分代表SS7的上层应用。MTP就是为上层用户UP部分提供承载服务的。而且对所有的SS7用户部分来说,MTP都是可以公用的。也就是说MTP的上层可以承载各种应用。   

    下面我们先来看一下MTP消息传递部分。其实MTP部分和路由及寻址和IP网络有很高的相似性。我们先来看几个术语以及它们和IP网络的对比。


    IP网络术语IP网络中的定义SS7相似的网络术语SS7网络中的定义
IP网络
SS7信令网络
IP地址

MAC地址
用于网络层寻址和标识

用于数据链路层寻址
信令点码Point Code或全球码GT用于SS7网络中的寻址和标识
源IP地址

源MAC地址
标识网络层的发送方

标识数据链路层发方
OPC(Original PC)(注释:不采用GT寻址时)

OPC(Original PC)(注释:采用GT寻址时)
标识SS7网络中通信的发送方
目的IP地址

目的MAC地址
标识IP网络层接收方

标识数据链路层收方
DPC(Destination PC)(注释:不采用GT寻址时)

DPC(Destination PC)(注释:采用GT寻址时)
标识SS7网络中通信的接收方
IP包头协议号

TCP/UDP端口号
标识IP层上层用户

标识传输层上层用户
MTP3层的SI字段(Service Indicator)

SCCP层的SSN(子系统号)
用于标识MTP3层上层用户
用于标识SCCP的上层用户
IP路由表用于IP网络下一跳寻址MTP路由表用于SS7网络中下一跳寻址
网络层 MTP-3
数据链路层 MTP-2
物理层 MTP-1
路由器提供IP网络中的基于网络层的包转发STP(信令转接点)提供MTP-3层的路由转接
通信节点或主机使用IP协议栈的通信节点信令点SP使用SS7协议栈的通信双方



      通过这个表格,其实我们可以发现SS7网络中的寻址也和IP网络的寻址非常类似。那我们先来回顾一下IP网络的寻址过程。

[attach]266[/attach]

图例1:IP网络的路由寻址

   如图例1所示:左边的FTP Client要发送IP包给右边的FTP Server。过程如下:

1)首先,FTP Client将上层payload封装好(这个payload可以是FTP的命令或上传的FTP文件等),交给TCP层,TCP层根据MSS进行分段。然后再交给网络层进行寻址。网络层需要查找的是路由表。在FTP Client的路由表中,查找到去往目的地址FTP Server的2.2.2.10的下一跳网关是1.1.1.1。然后交给数据链路层。根据ARP的学习结果,封装R1 E1/1口的MAC地址,然后交给物理层通过以太链路发给R1。

2)R1查找路由表。路由器拿到这个数据包之后,要做的就是解封装。首先从物理层根据0101的比特流还原出以太帧,然后解数据链路层。读取数据链路层的以太帧头,发现目的MAC地址是自己的,那么自己就是接收者,然后就可以继续解封装,到网络层。源IP默认不做检查,只看目的IP。这时候发现目的IP不是自己的,而是2.2.2.10。因此不能继续往上解封装。而是根据这个目的IP 2.2.2.10查找路由表来进行寻址。发现有两个下一跳,一个是到R2的12.1.1.2,一个是到R3的13.1.1.3。但因为优先级不一样,所以选择了优先级更高的R2。出接口为FE1/2。需要重新进行封装数据链路层。将目的MAC重写为下一跳12.1.1.2的MAC地址,然后从FE1/2口发出去。

R2上的处理方法类似。这个包将路由传递到FTP Server。

3)FTP Server 2.2.2.1收到这个IP包后。一层层开始从下往上解封装。首先查看数据链路层的目的MAC地址,发现是自己的。网上解网络层。发现目的IP是自己的,继续解传输层,发现端口号为21。代表FTP。然后FTP Server就将这个数据包交给相应的FTP进行进行处理,完成应用层报文的解读。

至此,数据包发送和解封装完毕。


作者: 爱卫生    时间: 2011-4-26 22:24:55     标题: SS7网络中的路由简化图

本帖最后由 爱卫生 于 2012-10-15 20:14 编辑

   对应图例1中IP网络中的寻址,我们再来看一下SS7网络中的基本路由寻址。做一个简化,其实可以发现和IP网络中的路由有很多类似甚至非常接近的地方。这个SS7网络路由简化图如图例2所示。如下:

[attach]268[/attach]

图例2:SS7网络路由简化图

  如图例2所示,SGSN要发送一个MAP消息给HLR。需要用到MTP消息传递部分来为上层的MAP消息提供传送服务。而在SS7网络中的地址编码为SPC(信令点码),类似于IP网络中的IP地址。当然也不全像,还是有一点区别,后续会给大家介绍。但总的来说,路由的方式IP网络中的路由方式极其类似。

  首先,SGSN在本地查找MTP路由表,将MAP消息封装好MTP层包头之后,发送给下一跳STP(信令转接点)来完成消息的路由。这个STP的功能就类似我们传统的路由器完成IP包的路由和转发。当然本例中,SGSN如果和HLR是直连的,也可以不通过STP,是没有问题的。STP也要查找自己的MTP路由表,表中同样记录了下一跳节点以及下一跳的信令点码,并且同样也有优先级的设置来决定走哪个信令点优先。

   因此,我们可以得出结论,其实SS7网络并没有我们想象的那么复杂。后续将为大家继续介绍SS7网络的详细路由寻址方式。


作者: 爱卫生    时间: 2011-4-27 15:43:41     标题: SS7网络MTP路由图

本帖最后由 爱卫生 于 2012-10-15 20:14 编辑

   接下来,我们通过一个具体实例,来看一下在SS7网络中,关于MTP层的路由具体在节点中是怎样实现的。
   下面的例子,假设是SGSN需要发送一个MAP消息(是一个位置更新请求消息)给HLR。图中列出了消息经过每一个节点的时候的包的封装。相应的地址编码和节点名称也都在图中做了标识,如下:

[attach]1279[/attach]

图例3-SS7网络MTP路由图

   我们来看一下这个包发送的步骤:

1)首先SGSN在用户部分创建好MAP消息之后,交给TCAP层。TCAP层的功能后续介绍,但本层和消息路由无关。然后交给SCCP层。SCCP层的功能后续会做详细介绍。这里只看其中的两个字段。一个是SSN,前面提到SSN,类似于TCP/UDP中的端口号,用于识别上层的不同用户部分。这里值为149,代表SGSN上的MAP消息。另外一个字段为RI(路由指示符),这里的取值为RI=Route On SSN。代表要求处理此消息的节点根据DPC+SSN来完成路由选择。还有另外一种选路方式为Route On GT。会在以后的例子中给大家介绍。在本例中只用到MTP中的DPC和SCCP中的SSN来完成消息的路由和寻址。然后,继续往下封装,交给MTP-3层,加上OPC是自己的2-100,DPC是下一跳STP的信令点码1-100,而不是HLR的信令点码3-100。从这一点可以看出来SPC和MAC地址非常相似。而并不和IP地址等价。接着往下交给MTP-2层信令链路,以及MTP-1层的E1端口或若干个E1时隙去完成转发。

2)在STP1上收到这个消息后,解封装。读取MTP-3层的DPC,发现是自己。然后就可以继续解到SCCP层。发现RI=Route On GT,得到一个指示,这个包要求自己根据GT来进行选路。然后执行GT翻译。其实这个消息并不是发给自己的。因此STP1要根据GT翻译的结果重写MTP-3层的封装,根据路由表的查找,下一跳为STP2,STP1根据GT翻译的结果将DPC重写为STP2的信令点码1-200。然后再通过路由表下一跳映射到MTP2层合适的信令链路发送出去。

  SP2上做和STP1类似的操作。

3)HLR收到这个消息后,发现DPC是自己,解包。到SCCP层,发现是Route On SSN代表按照DPC+SSN来进行寻址。SSN=149是代表上层的MAP消息,就可以直接将这个消息交给上层的MAP协议栈相应的进程去处理了。

  至此,消息发送完毕。


作者: rubik    时间: 2011-6-15 23:29:52

Route on GT 什么时候讲,前面的都明白了。比如国漫的用户~怎么查找归属HLR的。
作者: 爱卫生    时间: 2011-6-16 09:49:06

谢谢你的关注!但最近杂事比较多,这部分可能要稍延后一段时间。这是在我的日程安排上的。但也希望论坛其它朋友能帮忙补充也好!
作者: 断肠人    时间: 2011-6-23 18:55:49

好东西,,谢谢分享
作者: huaweikaka    时间: 2011-7-9 12:35:05

谢谢楼主。昨天晚上看了好长时间7号信令都没理解好,楼主的这个案例让我有一种茅塞顿开的感觉。另外,这两天在研究Iu-ps接口,楼主能不能结合着RANAP/SCCP/M3UA/SCTP/IP(IP承载)协议栈结构讲讲RNC-SGSN间消息的封装、传输过程呢?还有信令点和M3LE、MEDE、SCCPOPC、SCCPDPC的关系及各自的作用。还有M3LKS、M3RT、M3LNK的联系及作用。M3LNK配置的本端地址、端口,对端地址端口。SGSN和多个RNC的场景等。
说的比较乱,望楼主见谅。
期待楼主能抽出时间来给大家讲一下,可以放到Iu接口哪个版块里,那个版块现在还没什么东西呢
再次谢谢楼主,赞一个~
PS:觉得自己在接口协议栈上的理解总不入门,不光是这个接口。楼主能否有一些这方面的经验跟大家分享一下?或者有没有一些讲协议栈比较好的书推荐一下?光看3GPP的协议感觉就是平铺直叙,看完也就那样,不得要领
作者: 爱卫生    时间: 2011-7-9 14:52:19

回复 huaweikaka 的帖子

   首先谢谢你对论坛的支持哈!关于Iu-PS这块我以后一定会补充的。但你上面提到的有些配置命令应该是华为的吧。这我可能就做不到根据配置命令来讲了,因为每个厂家的实现都不太一样。
  关于协议栈,其实,目前GPRS网络中使用的SS7协议都有一个公共的特点,如MAP和RANAP这两种常用的为例。就是他们都分成两个部分,一个是应用部分,即MAP和RANAP。一个是消息传递部分,包括SCCP和MTP-1/2/3等。SCCP很大一块的作用是实现了全球GT寻址,实际上也是对MTP-3路由寻址的增强,关于SCCP及GT寻址这块还没有特别完整的实例介绍,以后将视时间进度安排进行补充。
  如果是刚入门不久,不建议把3GPP当成教科书来读,这样效率会有所降低。3GPP规范更适合有一定积累的中高级人员。关于SS7有很多好的介绍,包括华为的很多文档。或者在论坛的文档发布区也有一些,例如“GPRS基本原理.doc"等。然后,就是要结合包来看,结合信令流程和网络拓扑一起来看,这样可能理解起来会更快一些。你可以到信令流程版块找一些包先来看看。

作者: huaweikaka    时间: 2011-7-10 09:39:01

回复 爱卫生 的帖子

谢谢,我去那个版块看看
作者: jsh7912    时间: 2011-8-20 20:29:02

2)在STP1上收到这个消息后,解封装。读取MTP-3层的DPC,发现是自己。然后就可以继续解到SCCP层。发现RI=Route On SSN,得到一个指示,这个包要求自己根据DPC以及SSN来进行选路。然后发现SSN是149。其实这个消息并不是发给自己的。因此STP1要重写MTP-3层的封装,根据路由表的查找,下一跳为STP2,STP1将DPC重写为STP2的信令点码1-200。然后再通过合适的信令链发送出去。

  SP2上做和STP1类似的操作。


感觉楼主这个说法是不正确的,STP没有办法依据SSN就找到下一条是STP2而不是STP3,因为子系统是没有办法指示下一个网元是哪里, 上面的解释只能是Route On GT,SCCP层做GT翻译,得到新的GT地址和DPC,MTP在依据DPC选路,路由到STP2或者STP3(依据配置),如果是DPC寻址,MTP层的DPC地址就是HLR DPS,但是消息会依据路由先发送到STP1,STP1 的MTP层发现DPC不是自己,则查询路由表,进行转发,最终发送HLR,HLR发现DPC是自己,则向上层业务发送。



作者: 爱卫生    时间: 2011-8-21 10:23:35

jsh7912 发表于 2011-8-20 20:29
2)在STP1上收到这个消息后,解封装。读取MTP-3层的DPC,发现是自己。然后就可以继续解到SCCP层。发现RI=Ro ...

  有道理,谢谢你的纠正。我很认同你的观点。这里SGSN发出的包SCCP层应该是Route On GT。
  我的本意是想单独写一篇帖子介绍GT寻址,在这篇帖子里尽量淡化GT寻址,但没想到还是出现了纰漏。
  在实际的环境中,SGSN发出的寻址HLR的包也都是Route On GT的。这幅图是为了说明实际环境中基于MTP-3的寻址过程而画的。并不适用于GT寻址,GT寻址我将单独开一篇帖子介绍。包括SGSN上GT码的生成过程。
  再次感谢!

作者: shanyy11    时间: 2011-12-6 22:23:04

好帖,顶。
作者: liloveming1987    时间: 2012-1-19 15:49:12

谢谢版主,收益颇深
作者: strong1982    时间: 2012-3-14 16:33:22

一、信令的直连和准直连方式
信令的直连方式是指两个信令点之间通过直达信令链路传递消息,而准直连方式指两个信令点之间通过预先设定的多个串接的信令链路传递消息。
SGSN与本地的HLR、STP等功能实体间一般采用直连方式。
二、在准直连的情况下,STP不会改变信令消息中的OPC和DPC。当两个信令点间采用DPC寻址方式传送MAP、CAP消息且没有直达链路时,信令点间就要采用准直连方式
三、当两个信令点间采用GT寻址方式传送MAP、CAP消息时,则这两个信令点间就不采用准直连方式而要通过STP对信令消息进行GT翻译后将信令消息转发
四、直连和准直连的补充说明:

两个信令点间采用GT还是DPC寻址方式传送MAP、CAP消息各个运营商的要求是不一致的,有些要求省内信令点传送MAP、CAP消息采用DPC寻址,省外采用GT寻址,而有些要求全部采用GT寻址。

(2) 采用DPC寻址时,STP的负担较小,但SGSN所配数据较多;
      采用GT寻址时,STP的负担较大,但SGSN所配数据较少。
4、信令路由和链路集:
由于信令数据配置用于发送的信令消息的选路,所以在信令数据配置中,所有与本局直连和准直连的信令点被认为是目的信令点DPC(从本局信令点角度出发)。

而信令消息从本局到DPC所行的路径,叫做信令路由。由于到一个DPC的信令消息可以有多条路径,因而一个DPC对应一条或多条信令路由。

如果某个信令与本局信令点为直连方式,则认为该信令点与本局相邻。本局信令点与相邻信令点间相同属性的一束信令链路被称为链路集。

每个链路集包含一条或多条信令链路,到同一相邻信令点的每条信令链路通过信令链路编码SLC进行标识。

作者: strong1982    时间: 2012-3-14 16:44:20

对于上面的:
二、在准直连的情况下,STP不会改变信令消息中的OPC和DPC; 即在OPC到STP和STP到DPC的信令链路上,OPC和DPC不会改变;
对于上面的:
三、当两个信令点间采用GT寻址方式传送MAP、CAP消息时
SGSN到STP的DPC应为STP的PC;STP进行GT译码后,会将DPC改为HLR的PC后转发出去。
作者: strong1982    时间: 2012-3-14 16:46:55

以下说法不知是否正确,请楼主帮忙确认下,谢谢:
1、采用DPC寻址时,STP的负担较小,但SGSN所配数据较多;这个应该对应的是第二条所说情况
2、采用GT寻址时,STP的负担较大,但SGSN所配数据较少。这个应该是对应第三条所说情况,之所以STP负担大,是因为STP要进行GT译码,而不是像上述情况只是解包解到MTP3层。

作者: 爱卫生    时间: 2012-3-14 22:05:58

strong1982 发表于 2012-3-14 16:46
以下说法不知是否正确,请楼主帮忙确认下,谢谢:
1、采用DPC寻址时,STP的负担较小,但SGSN所配数据较多; ...

是的。
1、采用DPC寻址时,STP的负担较小,但SGSN所配数据较多;这个应该对应的是第二条所说情况
      这个主要是因为采用DPC寻址时,SGSN需要配置到多个HLR的DPC的信令点路由、信令链等等。STP由于不需要做GT翻译,只需要根据DPC寻址,所以负荷小。(本例采用DPC寻址)
2、采用GT寻址时,STP的负担较大,但SGSN所配数据较少。这个应该是对应第三条所说情况,之所以STP负担大,是因为STP要进行GT译码,而不是像上述情况只是解包解到MTP3层。
     正好反过来,SGSN只需要封装好MGT(Mobile GT)到SCCP层,不需要配置到各个HLR的DPC,因此配置量少。而STP要做GT到DPC+SSN的翻译,因此负荷要大。(本例采用GT寻址)


作者: 夜的宁静    时间: 2012-3-15 23:34:36

爱立信的SGSN支持两种SCCP被叫地址寻址格式:
1. GT  +SSN
2. DPC+SSN
如果采用GT+SSN方式,那么就需要STP来完成GT码来决定HLR如何到达(此时爱立信更习惯于把STP称为SRP);如果采用DPC+SSN方式,则由STP直接进行消息路由即可.
作者: admin    时间: 2012-5-30 10:19:18

jsh7912 发表于 2011-8-20 20:29
2)在STP1上收到这个消息后,解封装。读取MTP-3层的DPC,发现是自己。然后就可以继续解到SCCP层。发现RI=Ro ...

图已经更新,SGSN和STP1出来都应该Route On GT。STP2出来才是Route On SSN。谢谢指正。
作者: gpf_gprs2012    时间: 2012-8-3 11:34:08

分享了,谢谢
作者: jinpeng2012    时间: 2012-10-29 23:51:10

多谢楼主的分析,深入浅出。很容易理解。




欢迎光临 51学通信技术论坛 (http://51xuetongxin.com/bbs/) Powered by Discuz! X2