一:VoLTE学习以什么为主线?

很多入门者看了很多VoLTE的相关资料和书籍,都有一个共同的感觉,就是

VoLTE太复杂,涉及的网元太多,无从下手。

我的个人感觉是,再复杂的网络,抓住路由这条主线,都能够把它掌握。

而很多朋友又会觉得VoLTE(IMS网络)中的数据包的路由方式太复杂,那我们本期就来聊一聊IMS网络的基本路由是怎么实现的。

个人觉得,首先就是观念上的更新。在引入IMS(VoLTE)之前,移动通信当中的网元(比如MME、SGW、PGW)都是按照3GPP相关规范按步就搬的完成寻址过程。举个例子,EPS附着流程中的MME如果要寻址SGW和PGW,构建好TAI-FQDN和APN-FQDN向DNS发起查询,根据DNS解析结果继续后续的EPS承载创建流程。这个例子中,MME并没有太多的选择权,就是按照规范一步步走就完成任务了。

而在引入IMS这种全IP架构后,从3GPP一家独大转而进入了3GPP、TISPAN、IETF等领头的规范组织争霸的战国时代。IMS的寻址也不再按步就搬,而是可以根据各种策略来实现灵活的路由。

以下是某厂家P-CSCF节点所支持的SIP路由和寻址方式:

- 基于Request-URI查DNS进行路由;

- 基于Route头域查DNS或直接根据Route头域的IP地址进行路由;

- 基于主叫号码进行路由;

- 根据SDP携带的媒体类型进行路由;

- 根据eNUM查询结果进行路由;

- 根据SIP消息类型进行路由;

- 基于Qos进行路由;

- 根据SDP携带的编解码类型进行路由;

- 根据当前呼叫状态进行路由;

。。。。。。

如此多灵活的路由方式,在3GPP时代可能是不可想象的。

二:SIP数据包封装及路由触发过程

了解路由过程之前,首先我们得要了解下路由时怎么触发的。

了解OSI7层模型都知道,下层为上层服务,那我们网络层的路由也是为应用层服务的,或者也可以叫自顶向下的路由方式。

这里,我们可以拿HTTP来做一个类比。

1 你在电脑浏览器里输入51xuetongxin.com。那就开始了数据包的封装过程。

应用层会填入http get uri=51xuetongxin.com及其他应用层信息,交给传输层TCP服务。

2 TCP发起三次握手过程,为上层提供可靠性服务。但TCP是端到端的,并不具备点到点(在此,我们将点到点理解为同一网段的直连设备)的路由功能,于是要求IP层提供路由服务。

3 IP层填写必选字段,源IP、目的IP、TTL字段等。填写好之后,交给数据链路层处理。

但此时问题来了,你的电脑并不知道51学通信的目的IP是多少,那这个包就无法完成封装,进而无法交给下层处理,也就无法从网口上发出去了。

为了得到51学通信网站的目的IP,那在和51学通信通讯之前,就必须发起一个DNS查询过程。如下图所示:

SIP的路由与封装也是非常类似的。如下图所示:

以一个SIP注册流程为例,不论UE发起还是P-CSCF发起的SIP注册请求消息,都需要完成SIP报文的封装和路由。只不过,站在UE的角度相对简单,SIP包头中的必选头域都是已知的,目的IP也是已知的(P-CSCF),所以UE可以轻松完成SIP消息的封装并通过LTE/EPC网络发送给P-CSCF。

但接下来P-CSCF要发送给I-SCSCF就没那么简单了。此时,P-CSCF是不知道I/S-CSCF的IP地址的,因此需要发起DNS查询过程,如上图所示。

三:根据最基本的Request-URI的SIP路由过程

这里,我们以VoLTE注册流程(呼叫流程也是类似的)为例,介绍下VoLTE中最基本也是最常见的基于Request-URI进行路由的过程。

1)因为是VoLTE注册流程,UE填写好SIP头部中Request-URI为自己所属运营商的PLMN域名,格式为ims.mnc<MNC>.mcc<MCC>.3gppnetwork.org。这里假设为51xuetongxin.com。该SIP注册请求消息被转发给P-CSCF。

2)P-CSCF根据Request-URI构建DNS查询,请求DNS解析。

3)DNS最终返回I-CSCF的地址。

4)P-CSCF将SIP注册请求转发给I-CSCF。

具体的细节是这样的:

不过,是不是今天从头梳理(按协议栈自顶向下)了一遍触发和寻址路由过程,是不是更加清晰了呢?

另外,关于VoLTE用户的注册流程,我们在2016年已经录制了几个视频课程,感兴趣的可以看看。

视频一:2016年YY交流第4期:eSRVCC用户VoLTE注册流程

视频二:IMS网络中的IP层路由实现过程(注册流程)

51学通信核心网微信群公告:

为方便大家交流通信技术,我们创建了一个“51学通信核心网微信群”,欢迎所有热爱移动通信核心网的朋友加入,共同来探讨移动通信核心网相关问题,让我们共同进步吧~。

本群为51学通信所建的核心网技术交流群,仅限讨论核心网相关技术问题,分享通信生活及行业新闻等。禁发一切类型的广告(包括招聘、兼职信息、产品推广等,但在线学习类的分享不限),不合理的地方会慢慢改进。

本群涉及的主要领域和技术包括但不限于以下:

1)IP (MPLS VPN,IP Qos,NAT,IP Sec,组播,流量工程等)

2)CS核心网(MSC-S,MGW,SCP等)

3)2/3/4G PS核心网(MME,SGW,PGW,SGSN,GGSN,EPC DNS,EPC-HSS,HLR,OCS,CG,PG,PCRF,CE等)

4) IMS(CSFB,eSRVCC,ICS,RCS等技术,CSCF,AS,BGCF,IBCF,IMS-HSS,eNUM/DNS,ePDG,AAA,ATCF/ATGW,eMSC,SBC,MRFC/MRFP等网元)

本群讨论的主要协议包括但不限于:

MPLS,QinQ,IP,PIM,IGMP,SNMP,RTP/RTCP,OSPF,BGP,ISIS,SIP/SDP,Diameter/DBP,GTP,ISUP,MAP,RANAP,BSSAP,SIGTRAN,SCTP,H.323,H.248,IKE,AH/ESP,S1AP,SGsAP,X2AP,LDAP,XCAP,HTTP,BICC,Camel等。

本群讨论原理及信令为主,不讨论设备内部实现细节及bug。
加入方法:

51学通信群已超100人(目前已有358人),根据微信规定,群二维码自动失效。现在入群的唯一方法是群内人拉人入群。

为方便更多朋友入群一起交流核心网技术,特此发布下我们的入群方法:

1 群内的朋友可以任意拉人,只要不违反群公告的规定即可。

2 群外的朋友想入群,可以联系群内的朋友拉进来,或者加群主个人微信,说明想入群,群主会拉你入群

(群主微信名称:爱卫生,微信ID:gprshome201101)