- 在线时间
- 103 小时
- 最后登录
- 2014-6-29
- 威望
- 0
- 金钱
- 638
- 贡献
- 5
- 注册时间
- 2013-10-2
- 阅读权限
- 30
- 主题
- 5
- 帖子
- 46
- 分享
- 0
- 精华
- 0
- 积分
- 689
- 相册
- 0
|
本帖最后由 amr 于 2013-10-2 20:52 编辑
正在学习LTE的协议,在看ATTACH完整流程图。其中涉及到无线接入网和核心网的内容。看网上一些介绍,都是无线部分的介绍比较深入,核心网就比较潦草,甚至有些就只是标识大致内容,而没有详细细节。
深入学习,发现挺多内容不太理解,翻了翻23.401、29.274、29.281也没有得到想要的答案。我把我学习到的和相关疑惑写出来吧,望大侠们指导。
第一个疑惑是关于GTP协议的,以前没有接触过。
以LTE系统举例,UE想要上网,必须要经过eNB、SGW、PGW三个网元。其中S1-U和S5/S8这两个接口之间的实体使用了GTP协议。
看了看GTP的一些介绍,LTE使用的是GTPv2版本的协议。GTP协议分为控制面和用户面,使用GTP协议的网元是通过TEID来标识的,如下面两张图就分别是用户面和控制面涉及的网元(控制面还有很多网元使用,暂时使用SGW-PGW的一个例子说明)
有点通信知识的都知道,在不同的网元之间传输数据,肯定包括数据是谁的,数据从哪来到哪去,以及为了节省资源提高效率涉及到数据的服用/解服用的问题。
看attach的流程介绍12~22步骤,是default EPS bearer激活的流程。
12:NEW MM ---> SGW 发起Creat Session REQ
13:SGW ---> PGW 发起Creat Session REQ
15:PGW ---> SGW 发起Creat Session RES
20:eNB --->NEW MM发起Inital Context Setup REQ
这几条消息中都有一个共性:发消息的网元都携带自己的TEID随消息发送给接收方。如步骤13,协议是这么写的:The Serving GW creates anew entry in its EPS Bearer table and sends a Create Session Request (IMSI,MSISDN, APN, Serving GW Address for the user plane, Serving GW TEID of the userplane, Serving GW TEID of the control plane...)。
但29.274协议,关于GTP的overview是这么说的:
A GTP tunnel is identifiedin each node with a TEID, an IP address and a UDP port number. The receivingend side of a GTP tunnel locally assigns the TEID value the transmitting sidehas to use. The TEID values are exchanged between tunnel endpoints using GTP-Cor S1-MME or Iu-PSmessages. The GTPv2 entity communicates to the peer GTPv2 entity the TEID valueat which it expects to receive all subsequent control plane messages related tothat GTP tunnel via the:
- "Sender F-TEID or Control Plane" IE, - "PGW S5/S8/S2a/S2b F-TEIDfor PMIP based interface or for GTP based Control Plane interface" IE, - "MSC Server Sv TEID forControl Plane" IE, - "S3/S16/S10 Address and TEID forControl Plane" IE, or - "MME/SGSN Sv TEID forControl Plane" IE.
一个GTP隧道上的网元是通过一个TEID、IP地址和UDP端口号。GTP隧道上接收方在本地分配TEID的值供发送方使用。TEID的值是通过GTP-C/S1-MME/Iu-PS这些控制面的消息传递。采用GTPv2协议通信的两端网元,它们的TEID的值是通过GTP隧道相关的控制面消息接收到的。
---- 按照步骤13中的实例,S-GW携带的是自己的TEID,而对GTP隧道overview字面的意思,携带的是对方的TEID(比如S-GW是TX,P-GW是RX)。
如果按照协议的字面意思,我的疑问:
1、GTP TX端怎么选择哪个RX网元?
这个疑问好回答,协议里面有说,如:NEW MME选择S-GW是考虑两个要素:a、网络拓扑结构,被选择的S-GW的服务范围是包含了UE的活动范围,尽可能减少改变S-GW的概率。b、S-GW之间的负载平衡。(不过真正到现网是如何实现的,也不清楚,求大神指导。)又如S-GW选择P-GW,是在步骤11中HSS的update location ack消息中就携带有UE签约的PDN上下文,里面就包含UE对应P-GW的地址。
2、TEID的值是怎么产生or配置的?
第二个疑问在协议中就查不到了,这不像是IP或者UDP端口号,可以在做网元配置的时候进设置且是固定的(猜的,虽然没接触过,但从实际经验来看就是如此,协议也定义了不同消息类型IP源/目的地地址,UDP端口的配置规则,在这里也请大神指导是否是人员配置的?),而且TEID的值是可变的,我想应该是从0x0开始累加的吧。
3、我想是不是自己理解错了,初始创建通道的时候,TX携带的是自己的TEID,当隧道简历好后正式发送消息,如GTP-C,隧道的创建、删除、修改,GTP-U传用数据的时候就是对端告知TEID的值。
后面我查看网上一些资料,如爱卫生管理员这个UMTS的实例,红色字体部分告诉我TX端的TEID值是RX端使用的。所以我就郁闷了,到底TX的TEID是自己的还是RX的,如果是RX的,步骤13为啥那样写呢?求指导!
http://www.gprshome.com/thread-61-1-1.html
2 #2是SGSN向GGSN发起了create pdp context request,请求和GGSN建立关于这个用户的GTP-U隧道,来传递这个用户的payload信息。点开#2,在length 137下面,会发现有一个TEID:0x00000000,因为这是一个初始化的请求消息,所以TEID为0.用于标识这个初始的GTP-U隧道。再往下看,会发现两个IE,一个是TEID DATA I:0x32f02bf9。一个是TEID Control Plane:0x32f02bf9。这两个TEID是SGSN分配给GGSN使用的。指示了GGSN在接下来(后续消息一直到这个用户去激活的时间周期内)关于这个用户的信息,究竟应该用哪个TEID来标识。其中一个是标识这个用户的GTP-C,一个是GTP-U隧道。
|
|