类似虚拟机迁移涉及的Trill,移动终端也可以借鉴大二层的方案,即所有的移动终端全部处在一个巨大无比的二层网络,依靠其自身的ARP以及交换机的学习机制进行寻址。这种方案下,IP地址是不用变化的,完全通过“加一个黑盒子”的方式将移动终端适配到固定的网络上。移动终端并不知道自己在移动,它唯一要做的就是离开一个黑盒子范围时解除注册,进入一个黑盒子范围时注册自己,余下的全部是黑盒子封装二层数据帧后在其它黑盒子之间路由的问题了,和移动终端无关!
但是,如果由于终端移动导致的二层拓扑变化引发的网络重收敛,其收敛速度赶不上终端的移动频率或者收敛过于频繁,那就不能靠“加一个盒子”来适配终端本身了,而必须通过“加一个层”来适配应用了。这个层就是TCP/IP缺失的会话层。体现这种加一个盒子和加一个层之间的区别的一个典型例子就是IPSec网关和SSL协议之间的区别,前者加了一个盒子实现整个IP报文到安全性需求的适配,后者增加了一个层实现应用到安全性需求的适配,这种区分要好好体会,最终会发现,任何问题都可以有两种方案,加一个盒子横向解决,加一个层纵向解决。二者之间不同如下图所示:
以当前手机的移动性而言,肯定不适合用大二层的方案解决,起码也得是改进优化后的大二层方案,那么就需要实现一个会话层了,应用构建于这个会话层而不是传输层,即便传输层由于IP的变化断开重连了,会话层也会隐藏掉这一细节,应用层和会话层之间需要有一个控制平面的接口,即如何定义会话,比如基于HTTP session定义会话。所有的应用感受到的断开连接都是会话层的断开和连接,而不再是传输层的断开和连接了。
至于会话层的实现,目前正在参考有没有比较好的代码可供参考。