Session,这是一个非常广的概念,需要在特定的领域加以限定。但即便是通信领域,Session也会因为适用于不同的通信场景而有不同的定义,但它们的共性我们可以用一句话概括:通常是指双方的信息交互。
是不是感觉和没说一样?。。。
那咱们进一步的点明:Session在通信领域中,往往指的是一个点到另一个点的信息传输与交互。但请注意,我把它理解为两个点的存在通信连接并可以进行信息交互,而不去强调这个通信细节(既不关心是什么样子的连接,也不关心交互信息)。
就好比我用手机打电话给某某某,或者上网浏览网页等等等,都隐含着我和对端有一条连接(暂且不管是什么样的连接),但是我用手机没办法给一个在海上、没有信号覆盖的一个人打电话(仅支持陆地移动通信网络覆盖),说明我们两个不存在一个使用移动通信系统就可以提供的连接。所以,Session多是强调连接的存在性,强调的是点到点信息交付。
在移动通信系统中,Session指的含义就明确多了,专指:UE使用一个IP地址与一个数据网络进行信息交互。
简而言之,就是实现UE与数据网络彼此交付IP分组的连接。看看,是不是通信的实体更明确了,通信的形式也更明确了。
上图是4G用户面的协议栈模型,忽略掉IP层以下的其他协议栈。我们不难看出,在4G中,一个Session就是为了实现UE与一个PDN网络之间IP分组的交付。但不论是4G还是5G移动通信系统,建立Session的目的,都是为了实现UE与数据网络之间点到点的IP分组交付。一个UE与DN的Session创建好了,就意味着可以实现IP分组的传输。
注:IP层以下的协议栈都是为了去迎合移动性,无线通信的需要,这一部分是无线移动通信系统的核心。在TCP/IP的体系中,用户数据被封装在IP分组里,仅满足了数据在不同网络之间的传递性要求。但无线移动通信网络的特殊性(无线信号传播、终端移动性,终端的能耗,接入身份的复杂性),导致网络想要提供一个良好的数据传输机制异常困难,因此才有了IP层以下这么多异常复杂的协议去迎合这种特殊性。虽然,不同网络的内部,大多都是去想方设法的去支持IP分组的透明传输,但相较其他网络而言,无线通信网络确实是一个非常复杂的网络。
对一个Session而言,既然是IP分组的交付,那是不是可以用UE的IP地址和DN的IP地址去标识一个Session呢?这显然是对Session中的DN有所误解。在移动通信系统中,DN泛指某一种数据网络,如:Internet、WAP、企业内部网等等。想想,当你用手机接入互联网时,是只收到了一种IP地址的数据包吗?你收到的微信数据,或者QQ数据,显然不是来自同一个IP地址,但是我们可以确定他们来自同一个DN,那就是Internet。
所以,在移动通信系统中,我们不能用UE的IP地址和DN的IP地址(从本质上来讲,DN就是一个来自某一种网络的不同IP的数据流的集合)去标识一个Session,准确的来讲,我们使用UE的IP地址和DN的ID去标识一个Session。这个ID在4G中如雷贯耳,称之为APN (Access Point Name);而在5G中,估计大家目前还没听过,它叫做DNN (Data Network Name)。
做一个小结:在移动通信中,你可以把Session理解为一种UE到DN的逻辑连接,连接双方交付的都是IP分组。
EPS Session与PDN Connection的概念是相同的,其目的,当然是为了实现4G网络中,UE与DN的数据交互。废话不多说,直接上图解释!
一个EPS Session横贯LTE网络的用户面,需要LTE-Uu,S1,S5以及SGi接口提供连接支持。
为了保证一个Session的通信质量,在4G中想了一种大家都可以理解的办法:按需分类。4G中的一个Session可由多个EPS Bearer组成,不同的EPS Bearer能够提供的数据包的转发性能有所不通。
比如上图,一个是默认承载(Default EPS Bearer),另一个是专用承载(Dedicated EPS Bearer),这两个承载转发性能有明显的差别。
从PDN网络来了5个IP flow,其中IP flow 3-5告诉P-GW:我们赶着投胎呢,你赶紧让我上个快车,别让我晚点了!(低时延…),然后P-GW如愿以偿地让他们上了专用承载的车;然后IP flow 1-2告诉P-GW:我俩不着急,但我俩800公斤,你得找辆卡车(大带宽…),然后P-GW让他们上了默认承载的车。
因此,4G是以不同承载这种方式来协调一个Session的整体通信质量,说到底就是一种“按需分类”的思想。
不然的话,一个Session对于所有的IP flow都按照同一种方式进行处理,假如说都让他们上默认承载这辆卡车(实际上连卡车也算不上,默认承载这辆车是建立Session时,随赠的一辆车,性能可想而知…),那你看B站的时候没啥问题,玩王者荣耀的时候可能就要原地鬼畜了…
分类可以实现有针对性的转发,性能也更有保障,我们从一个Session角度来看,这种处理方式虽然简单,但确实是最有效的方法。
不过值得一提的是,EPS Session实际上是一种Always-on IP connection。也就是说,只要完成一次EPS Session的建立过程(详见我的另一篇文章的2.1节,4G与5G会话建立流程描述以及对比),那网络就会一直保持这个Session,直到UE在核心网的MME中注销(去附着)。这个Always-on IP connection的体现,就是默认承载会始终保持,不会释放。
对于EPS Session我们仅分解到EPS Bearer这一层,不再详细拆分一个EPS Bearer的具体结构,后期我会单独拿出篇幅去分析EPS Bearer的结构。
5G中的PDU Session与PDU Connection实际上也是针对UE与DN之间交付数据包,老规矩,上图!
同样的,4G与5G一脉相承。PDU Session也是基于“按需分类”的思想。每个IP flow都会映射到某一个QoS Flow,并用一个QFI来标识这个QoS Flow,也可以理解为,QFI就是QoS Flow的ID。
在5G中,QoS Flow是一个Session中对QoS的最小区分粒度。不同的QoS Flow也就意味着不同的转发处理,也就意味着适配不同的QoS。并且,在一个Session中,QoS Flow被QFI唯一标识的,不存在QFI相同,但QoS Flow不同的情况,QFI与QoS Flow是一一对应的关系。
所以,我们总的来看:在5G中,若干个不同的QoS Flow协调了Session的整体通信质量。虽然不同的IP flow对传输性能的要求可能不同,但对其进行合理的分类,形成若干个可描述的QoS Flow,便可以在一个Session中实现不同QoS等级的传输。
总结一下:从Session的角度而言,4G和5G的目的是一致的,思想是一致的,做法是相似的。但对比4G与5G的业务支持方面,5G要明显区别于4G,不仅支持更大的带宽,而且支持更低的时延。接入侧确实为这两个方面带来了极为明显的提升,但网络侧也相应发生了明显的变化,只不过我们单纯从Session的角度而言,没办法区别这些变化。
具体的区别,还是在于对QoS区分的差异:4G中,EPS Bearer是对QoS的最小区分粒度;5G中,QoS Flow是对QoS的最小区分粒度。
后面会逐步分析EPS Bearer与QoS Flow,其中QoS Flow将会是我们分析的重点。