51学通信技术论坛

 找回密码
 立即注册
搜索
查看: 18204|回复: 29
打印 上一主题 下一主题

看包详解带3GDT的PDP上下文激活流程     [复制链接]

Rank: 9Rank: 9

懒

跳转到指定楼层
楼主
发表于 2011-6-3 14:28:17 |只看该作者 |倒序浏览
一键分享 一键分享
本帖最后由 爱卫生 于 2012-4-23 19:21 编辑

    关于3GDT的原理,在论坛中有几篇帖子介绍了。可以参考3GDT技术帖子以及现网经验分享中也有3GDT的部署和经验分享。这里的话,我们主要通过一个抓包实例来加强对3GDT技术下的PDP激活流程的理解。
  3GDT的信令流程图如下所示:

   在看对应的抓包之前,有必要了解下物理和逻辑拓扑图,这样我们看抓包才能看得更清晰明白。拓扑图如下:

   对应的包如下:

   下面我们来看一下对应的建立步骤,和理论上介绍的流程对比一下,看是否一致:

(注:我们在这里只重点关注3GDT的建立过程,至于PDP上下文激活请参考版块中有专门的PDP激活实例介绍”。

1)UE发起PDP激活请求给SGSN,RNC收到后加上RANAP层的信息,并将UE的这个NAS PDU作为直传消息(Direct Transfer)传递给SGSN。并加入了RAI和SAI等位置信息告知SGSN。其中OPC8194为RNC的,DPC为1030是SGSN的。



2)SGSN收到UE的PDP激活请求后,进行相应的检查。如果没有问题,将发送Create PDP Context Request消息给GGSN,发给GGSN的目的IP为172.17.5.41,这是GGSN上的GTP-C地址,SGSN需通过DNS解析得到。这个请求消息里还为GGSN分配了用于下行方向信令和数据传递的SGSN地址和TEID信息。

   其中分配的控制面信息为:

   SGSN IP:192.168.60.1 TEID为:0x2d300705

         分配的用户面信息为:

  SGSN IP:192.168.60.11 TEID为:0x2d300785。



3)GGSN收到后,确认没有问题。给SGSN回应Create PDP Context Response。在里面,同样GGSN也给SGSN分配了用于上行流量和信令的GGSN地址和TEID信息。

   其中分配的控制面信息为:

   GGSN IP:172.17.5.42 TEID为:0x5c001310

         分配的用户面信息为:

  GGSN IP:172.17.5.50 TEID为:0x5c001315。  

  并且为UE分配了一个IP地址为:10.23.192.2。



4)SGSN开始请求RNC建立对应的RAB用于用户面的承载。发送RAB-Assignment消息给RNC,在这个消息里,SGSN将把GGSN分配的用户面地址和TEID信息告诉RNC,即172.17.5.50和ox5c001315。包含在transportlayerinformation IE中(点开#4或号包能看到)。因此RNC就可以在RAB建立后开始发送上行数据了。直接将上行数据发送到这个地址和TEID对应的GTP-U隧道中就可以了。



5)RNC建立RAB并且给SGSN回应RAB-Assignment Response。点开RANAP层后,你就可以看到RNC将自己用户面的地址和TEID告诉了SGSN。这里分别是:10.36.90.6和0x00000067。



6)因为要建立直接隧道,所以SGSN要把RNC对应的用户下行数据的TEID和IP告诉GGSN,用于下行用户数据的发送。因此SGSN给GGSN发送Update PDP Context Request消息,里面包含了从第5步获知的RNC用于下行方向用户面地址和TEID。



7)GGSN收到后,更新下行方向地址和TEID信息,本来应该是在第3步里收到的用户面信息为:

  SGSN IP:192.168.60.11 TEID为:0x2d300785。将替换成第6步中更新的值10.36.90.6和0x00000067。当然,GGSN并不知道实际上和自己建立GTP-U隧道的已经不是SGSN,而变成RNC了。SGSN再此使用了金蝉脱壳的计谋,自己逃了。GGSN回应Update PDP Context Response消息进行确认。(GGSN其实还是知道的,在Update PDP Context Request消息中有DTI标志位为1代表使用了3GDT)。


8)SGSN给RNC回送Activate PDP Context Accept消息。来确认关于这个UE的PDP上下文的成功建立。并且携带了GGSN分配给UE的IP地址。

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

沙发
发表于 2011-7-27 16:01:03 |只看该作者
精辟啊,太精辟了

使用道具 举报

Rank: 2Rank: 2

板凳
发表于 2011-7-28 00:26:07 |只看该作者
7)GGSN收到后,更新下行方向地址和TEID信息,本来应该是在第3步里收到的用户面信息为:

  SGSN IP:192.168.60.11 TEID为:0x2d300705。将替换成第6步中更新的值10.36.90.6和0x00000067。当然,GGSN并不知道实际上和自己建立GTP-U隧道的已经不是SGSN,而变成RNC了。SGSN再此使用了金蝉脱壳的计谋,自己逃了。GGSN回应Update PDP Context Response消息进行确认。

------------------个人理解,GGSN是知道的。因为Update PDP Context Request中DTI置位。

使用道具 举报

Rank: 9Rank: 9

懒

地板
发表于 2011-7-28 06:34:29 |只看该作者
本帖最后由 爱卫生 于 2011-7-28 06:37 编辑

   有道理。GGSN确实应该知道。谢谢指正!
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 2Rank: 2

5#
发表于 2011-8-28 21:23:11 |只看该作者
本帖最后由 afeizai 于 2011-8-28 21:29 编辑

这个是3GDT的PDP激活,如果非DT的流程是怎么样?是如下的步骤吗:
1)UE发起PDP激活请求给SGSN,RNC收到后加上RANAP层的信息,并将UE的这个NAS PDU

作为直传消息(Direct Transfer)传递给SGSN。并加入了RAI和SAI等位置信息告知SGSN

2)SGSN收到UE的PDP激活请求后,进行相应的检查。如果没有问题,将发送Create

PDP Context Request消息给GGSN,发给GGSN的目的IP,这是GGSN上的GTP-C地址,

SGSN需通过DNS解析得到。这个请求消息里还为GGSN分配了用于下行方向信令和数据传递的SGSN地址和TEID信息。


3)GGSN收到后,确认没有问题。给SGSN回应Create PDP Context Response。在里面

,同样GGSN也给SGSN分配了用于上行流量和信令的GGSN地址和TEID信息。  并且为UE分配了一个IP地址。

4)SGSN开始请求RNC建立对应的RAB用于用户面的承载。发送RAB-Assignment消息给

RNC,在这个消息里,sgsn将为自己分配另外一个TEID,并将TEID和用户面IP告诉RNC。

5)RNC建立RAB并且给SGSN回应RAB-Assignment Response。点开RANAP层后,你就可以

看到RNC将自己用户面的地址和TEID告诉了SGSN。

至此,RNC->SGSN->GGSN的双Tunel就建立起来了

使用道具 举报

Rank: 9Rank: 9

懒

6#
发表于 2011-8-29 10:51:40 |只看该作者
回复 afeizai 的帖子

  对。我个人觉得你的说明完全正确。关于不带3GDT的PDP激活流程,可以参考6.2版块,有相应的实例。
  另外,补充一点就是,在创建PDP上下文激活时,SGSN和GGSN除了给对方分配用户面TEID和IP地址外,还要分配控制面的TEID和IP地址,这样GTP-C和GTP-U就分别对应到不同的GTP Tunnel了。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 2Rank: 2

7#
发表于 2011-8-29 13:47:20 |只看该作者
谢谢斑竹的耐心解答。可确定的是SGSN和GGSN之间的双隧道,一个C的,一个U的。但,SGSN和RNC之间为什么为什么不是给的两个TEID呢,信令和用户面不分离吗?另外,我想知道是,针对R5的,SGSN上的PDP上下文中是不是应该有3个TEID,两个for GGSN(Gn),一个for RNC(IuPS).

使用道具 举报

Rank: 9Rank: 9

懒

8#
发表于 2011-8-29 13:54:19 |只看该作者
回复 afeizai 的帖子

1 但,SGSN和RNC之间为什么不是给的两个TEID呢,信令和用户面不分离吗?
   答:只用分一个。因为SGSN和RNC控制面不是用的GTP协议,而是RANAP协议,因此只需要分配一个用户面TEID。

2 另外,我想知道是,针对R5的,SGSN上的PDP上下文中是不是应该有3个TEID,两个for GGSN(Gn),一个for RNC(IuPS).
   答:是的。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 2Rank: 2

9#
发表于 2011-8-29 14:58:47 |只看该作者
谢谢斑竹!!

使用道具 举报

Rank: 2Rank: 2

10#
发表于 2011-8-29 21:05:51 |只看该作者
那mscserver和Mgw的信令用户面分离也与DT类似吗,能否看到对比呢

使用道具 举报

Rank: 9Rank: 9

懒

11#
发表于 2011-8-29 21:28:10 |只看该作者
回复 afeizai 的帖子

  msc-server和MGW上的控制用户面的分离,是从节点级进行分离。是硬件上的分离,即将传统的MSC拆分成MSC-S和MGW两个实体。这和3GDT还不一样。3GDT并没有将SGSN的用户和控制面进行拆分。只是相当于采用软件逻辑的方式,将用户流量bypass SGSN。但在3GPP R8以后,由于PS业务的不断增长,对SGSN也进行了物理上的拆分。其中SGSN的控制面叫做MME(Mobility Management Entity),用户面叫做SGW(Serving-Gateway)。如果你感兴趣,可以关注下论坛的版块14 EPC演进的包交换核心网。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 3Rank: 3Rank: 3

12#
发表于 2012-2-10 10:26:51 |只看该作者
3GDT的理解比较经典了,学习了,谢谢!

使用道具 举报

Rank: 3Rank: 3Rank: 3

13#
发表于 2012-3-28 11:19:43 |只看该作者
很详细,希望以后多发些这样的帖子。

使用道具 举报

Rank: 2Rank: 2

14#
发表于 2012-4-7 18:03:37 |只看该作者
太经典了!非常感谢!很详细啊。

使用道具 举报

Rank: 4Rank: 4Rank: 4Rank: 4

15#
发表于 2012-4-7 23:32:01 |只看该作者
讲解得非常地直观明了,感谢版主的总结和分享!
生活是一段一段的~

使用道具 举报

Rank: 3Rank: 3Rank: 3

16#
发表于 2012-4-23 16:06:27 |只看该作者
回复 爱卫生 的帖子

爱总,你这篇文章里面说到的SGSN分配的数据(I)TEID和控制面TEID好像说反了。
数据(I)TEID好像是G-PDU的下行TEID,应该是GTP-U的TEID才是,而控制面的TEID,也就是TEID Control Plane才是GTP-C的TEID吧?
在您的附件里面SGSN发给我们的wireshark抓包里面

TEID Data (I)是 0x2d300785
TEID Control Plane是0x2d300705
本人新手学习中,冒昧的怀疑下您。

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 9Rank: 9

懒

17#
发表于 2012-4-23 19:22:30 |只看该作者
imwoohan 发表于 2012-4-23 16:06
回复 爱卫生 的帖子

爱总,你这篇文章里面说到的SGSN分配的数据(I)TEID和控制面TEID好像说反了。

是的。呵呵,你谦虚了。已经改正更新。谢谢!
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 2Rank: 2

18#
发表于 2012-7-25 13:07:52 |只看该作者
这个比较新鲜啊

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

站长邮箱|Archiver|51学通信 ( 粤ICP备11025688 )

GMT+8, 2024-5-5 20:07 , Processed in 0.035719 second(s), 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部