发明内容
本发明的目的在于提供一种移动IP系统的单接口无缝切换方法及其系统,用于解决现有的MIP,MIPv6,DSMIPv6系统在仅有一个WLAN网络接口可用的情况下,在切换过程中会因配置地址、网络延迟等原因导致切换时间过长、切换过程中数据包大量丢失和乱序的问题。
为了实现上述目的,本发明提供一种移动IP系统的单接口无缝切换方法,用于实现移动设备从当前AP切换到目标AP,其中,包括:
步骤一,监测移动设备接入网络的当前网络通信质量,并根据当前网络通信质量启动移动设备从当前AP到目标AP的切换控制;
步骤二,移动设备通知当前AP已进入睡眠模式,由当前AP缓存来自HA的数据包;
步骤三,移动设备向目标AP发起连接并接入到目标AP上,在从目标AP接收到数据前从当前AP获取来自HA的数据包;
步骤四,移动设备从目标AP获取来自HA的数据包并输入内核缓存,并依次将从当前AP获取的数据包、内核缓存中从目标AP获取的数据包提交给传输层,断开与当前AP的连接,完成切换。
所述的单接口无缝切换方法,其中,所述步骤二中,包括:
移动设备通过发送PSM置位的NULL帧通知当前AP已进入睡眠模式。
所述的单接口无缝切换方法,其中,所述步骤三中,包括:
移动设备通过备用MAC地址向目标AP发起连接,该MAC地址通过对移动设备WLAN网卡的MAC地址的关键位修改得到。
所述的单接口无缝切换方法,其中,所述步骤三中,包括:
当移动设备接入的网络是纯IPv6网络,或IPv6和IPv4共存的网络时,向目标AP发起连接后,接着发送DHCP请求和路由请求,等待DHCP应答和路由应答:
若先收到路由应答,则执行如下处理:
配置IPv6的地址,进行重复地址检测,在检测时间内,切换回当前AP,由当前AP获取来自HA的数据包,释放内核缓存中的数据包,当检测时间经过后,再切换回目标AP,根据从目标AP接收的数据包判断重复地址检测是否成功,若成功,通过目标AP发送绑定更新信息,并间歇性地切换到当前AP,由当前AP获取来自HA的数据包;
若先收到DHCP应答,则执行如下处理:
配置IPv4的地址,发送绑定更新信息,释放内核缓存中的数据包,并间歇性地切换到当前AP,由当前AP获取来自HA的数据包。
所述的单接口无缝切换方法,其中,移动设备通过设置一计时器对检测时间进行计时,根据计时器在当前AP与目标AP之间切换。
所述的单接口无缝切换方法,其中,所述步骤三中,包括:
当移动设备接入的网络是纯IPv4网络时,配置IPv4的地址,发送绑定更新信息,释放内核缓存中的数据包,并间歇性地切换到当前AP,由当前AP获取来自HA的数据包。
所述的单接口无缝切换方法,其中,所述步骤三中,包括:
移动设备当从目标AP切换到当前AP前,向正在连接的AP发送PSM置位的NULL帧,由该正在连接的AP缓存来自HA的数据包。
所述的单接口无缝切换方法,其中,所述步骤四中,包括:
移动设备当从目标AP切换到当前AP前,或从当前AP切换到目标AP前,向正在连接的AP发送PSM置位的NULL帧,由该正在连接的AP缓存来自HA的数据包。
为了实现上述目的,本发明提供一种移动IP系统的单接口无缝切换系统,用于实现移动设备从当前AP切换到目标AP,其中,包括:
内核缓存,用于缓存移动设备从应用层接收的数据包;
网络质量监控模块,用于监控移动设备接入网络的当前网络通信质量;
切换控制模块,连接所述内核缓存、所述网络质量监控模块,用于根据当前网络通信质量实现移动设备从当前AP到目标AP的切换控制;
所述切换控制模块通知当前AP移动设备已进入睡眠模式,由当前AP缓存来自HA的数据包,向目标AP发起连接并接入到目标AP上,在从目标AP接收到数据前从当前AP获取来自HA的数据包,从目标AP获取来自HA的数据包并输入内核缓存,并依次将当前AP获取的数据包、内核缓存中从目标AP获取的数据包提交给传输层,断开与当前AP的连接,完成切换。
所述的单接口无缝切换系统,其中,
所述切换控制模块通过发送PSM置位的NULL帧通知当前AP移动设备已进入睡眠模式。
所述的单接口无缝切换系统,其中,
所述切换控制模块通过备用MAC地址向目标AP发起连接,通过修改移动设备WLAN网卡的MAC地址的关键位得到该MAC地址。
所述的单接口无缝切换系统,其中,
所述切换控制模块,还用于:
当移动设备接入的网络是纯IPv6网络,或IPv6和IPv4共存的网络时,向目标AP发起连接后,接着发送DHCP请求和路由请求,等待DHCP应答和路由应答:
若先收到路由应答,则执行如下处理:
配置IPv6的地址,进行重复地址检测,在检测时间内,切换回当前AP,由当前AP获取来自HA的数据包,释放内核缓存中的数据包,当检测时间经过后,再切换回目标AP,根据从目标AP接收的数据包判断重复地址检测是否成功,若成功,通过目标AP发送绑定更新信息,并间歇性地切换到当前AP,由当前AP获取来自HA的数据包;
若先收到DHCP应答,则执行如下处理:
配置IPv4的地址,发送绑定更新信息,释放内核缓存中的数据包,并间歇性地切换到当前AP,由当前AP获取来自HA的数据包。
所述的单接口无缝切换系统,其中,
所述切换控制模块,还用于:
当移动设备接入的网络是纯IPv4网络时,配置IPv4的地址,发送绑定更新信息,释放内核缓存中的数据包,并间歇性地切换到当前AP,由当前AP获取来自HA的数据包。
所述的单接口无缝切换系统,其中,
所述切换控制模块,还用于:
当移动设备从目标AP切换到当前AP前,向正在连接的AP发送PSM置位的NULL帧,由该正在连接的AP缓存来自HA的数据包。
所述的单接口无缝切换系统,其中,
所述切换控制模块,还用于:
当移动设备从目标AP切换到当前AP前,或从当前AP切换到目标AP前,向正在连接的AP发送PSM置位的NULL帧,由该正在连接的AP缓存来自HA的数据包。
与现有技术相比,本发明的有益技术效果在于:
针对现有的MIP,MIPv6,DSMIPv6系统(下文简称移动IP系统)在仅有一个WLAN网络接口可用的情况下,在切换过程中会因配置地址、网络延迟等原因导致切换时间过长、切换过程中数据包大量丢失和乱序的问题,为了克服现有协议的不足,本发明提供基于移动IP系统的单接口无缝切换方法及系统,通过无缝软切换,使得DSMIPv6系统在WLAN网络之间切换、配置地址的同时也能够收发数据包,大大减少了切换延迟,并有效避免了因切换所导致的丢包问题。本发明能够让移动IP系统在仅有一个WLAN接口的情况下还能在无线网络之间无缝切换,切换延迟小,切换过程不丢包。另外只需修改移动设备端,无须对已有的移动IP协议或其他网络设备做任何修改,实施和部署容易。
通过使用本发明,移动IP系统的切换延迟将大大减少,切换不再丢包,并且因切换而导致的数据包的乱序的程度也将大大减轻。
具体实施方式
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
如图1所示,NETFILTER HOOK A,用于控制从系统出去的数据包,NETFILTER HOOK B用于控制出网卡进入系统的数据包,NETFILTER HOOKA、NETFILTER HOOK B受2层切换控制模块(Layer 2Handoff ControlModule)的控制,可以拦截来自传输层或来自网卡的数据包。
用户级应用(USER LEVEL APPLICATIONS)主要指用户正在使用的应用程序,比如浏览器、MSN等,传输层(TRANSPORT LAYER)、网络层(NETWORK LAYER)都处于操作系统的内核中,由内核实现,比如网络层的TCP、UDP、SCTP等。应用层发送到网络的数据会先提交到传输层,然后到达网络层,最后由网卡发送出去。一般来说传输层要发送数据是由于应用层正在往传输层发送数据,但也有例外,比如TCP,在用户没有往传输层发送数据时,如果TCP链接已经建立,它有可能定期的发送各种控制报文,如zerownd-probe等。故本发明描述了应用层数据包和传输层数据包,总之这些数据包不在切换未完成之前发送出去。网络层数据包有NS,NA,RS,RA,BU等,这些数据包在切换未完成时发送,以便和网络交互。
传输层包括TCP等协议,能够对用户的数据包进行必要的重传,计时控制等。网卡驱动负责发送和接受数据包。2层切换控制模块负责检测以及执行AP之间的切换,DSMIPv6(DSMIPv6MOBILITY MANAGEMENT MODULE)移动管理系统为双栈移动管理系统,负责IP层次上的切换管理。2层切换控制模块和DSMIPv6移动管理系统配合控制系统的资源来完成一个切换过程。
来自传输层的数据包可以被保存到输出缓存(OUTPUT BUFFER)中,来自网卡的数据包可以被缓存到输入缓存(INPUT BUFFER)中(延缓向上层提交时用)。OUTPUT BUFFER、INPUT BUFFER两个缓存都是内核缓存。其中OUTPUT BUFFER用来缓存要发送出去但暂时不应该发送的包,在切换结束后这些包会被发送到网络上,INPUT BUFFER用来缓存网卡驱动从网络接收到的包,这些包暂时不应该提交给网络层,故先缓存着。2层切换控制模块会在恰当时机释放这些缓存以让其中的数据包提交给网络层。如果MN一接收到数据包就提交给网络层,则可能会引起数据包乱序导致性能下降。
网络质量监测模块(Network Quality Monitoring Module)不断检测网络质量并在需要时通知DSMIPv6移动管理系统和2层切换控制模块进行必要的操作。
2层切换控制模块直接与网卡以及DSMIPv6系统交互,控制切换过程中的各种行为。
通过使用AP对移动设备省电模式的支持,让移动设备在切换的时候间歇性的与两个AP保持通信。移动设备本身在通信的过程中还检测周围可用AP,把相关信息存入备用AP列表中。同时,通信质量监控模块监测到当前AP信号变弱的情况。当移动设备发现信号变弱到一定程度后,就从备用AP列表中找出一个AP准备切换过去。在切换的时候,移动设备先给当前AP(又称旧AP)发送一个PSM置位的NULL帧,这样当前AP就以为移动设备进入了休眠模式,就会为移动设备缓存来自HA的数据。然后,如果目标AP的频率和当前AP一样,移动设备使用备用MAC地址(把当前MAC地址的关键几位修改)接入到备用AP(又称目标AP,新AP)中,否则移动设备就使用当前MAC地址接入到目标AP中。之所以使用备用MAC地址,是因为若直接使用自己的MAC地址,旧AP就会听到移动设备在通信,就会给移动设备发送数据包,因为移动设备已经连接到备用AP上,收不到旧AP的数据包,旧AP多次发送数据失败后就会和移动设备断开连接。
接入到新AP后,移动设备开始配置地址的工作。配置地址的时间可能很长,如1秒(因为DAD的缘故),也可能很短(如收到DHCP应答)。如果配置地址时间很长,移动设备可以在这期间重新切换回旧AP进行通信。因为移动设备并没有和旧AP断开,旧AP一直为移动设备缓存了数据,移动设备可以取到这些数据,并发送数据包。最后时间差不多了(如DAD的1秒时间到了),移动设备再切换回新AP。每次从一个AP切换到另外一个AP前,移动设备都先向正在连接的AP发送PSM置位的NULL帧,以便让AP为移动设备缓存数据,避免了数据的丢失。
切换回新AP后,移动设备此时已经配置完地址,移动设备向HA发送绑定更新BU。在HA收到BU之前,HA还会向旧AP发送数据,所以,移动设备还要定期的回旧AP取数据。假设移动设备在t0时刻切换到新AP后发送了BU,在td=t0+k*(interval+p+q)+a(a<interval,interval为移动设备在新AP的停留间隔,p为切换以及在旧AP收取数据的耗时,q为从旧AP切换到新AP的耗时)的时刻从新AP收到了来自HA的数据,则移动设备在t1,t2,…,tk时刻切换回旧AP处理数据后,分别在t1+p,t2+p,…,tk+p时刻切换回新AP。其中tx=x*(interval+p+q)+t0,0<=x<=k。
当移动设备从新AP处收到来自HA的数据时,表示切换已经成功。此时移动设备还不能直接把数据包提交给传输层,因为可能有部分前面的数据还缓存在旧AP上。移动设备先把从新AP收到的数据缓存在内核缓存中,然后切换回旧AP读取数据,最后和旧AP断开,往传输层先提交来自旧AP的数据,然后再提交来自新AP的数据(在内核缓存中)。这在本发明称为“延迟提交”,目的为了减少数据包的乱序。当移动设备断开和旧AP的连接后,移动设备接入到新AP上,至此,切换完成。
PSM置位的NULL帧(通知AP移动节点已经进入入休眠模式,让AP为其缓存数据)是由L2切换控制模块控制WLAN DRIVER发送的,内核其他模块以及上层应用都无法发送这种类型的信令。
如图2所示,是移动设备切换时的数据以及信令交互流程图。
图2中描述了切换到IPv6网络时候,DAD成功时候的情况。
发送PSM数据包就是让AP在MN没有连接在其上时候暂时为MN保持别的地方发给它的数据。MN接到AP上后会提取AP为其缓存的数据。这里主要是信令以及数据流的交互图,不包括MN执行切换的一些细节。
一开始,L2切换控制模块在监测通信的过程中认为有切换的必要时,就触发切换。PSM代表PSM置位的NULL帧。
切换触发后,MN(Mobile Node)需要切换到另外一个AP上(New AP),为了避免期间旧AP(Old AP)还往MN发送数据(因为MN已经连接到newAP上,无法接收这样的数据),MN先给旧AP发送PSM,然后再与新AP建立2层(链路层,不同于IP层)连接。然后MN发送RS和DHCP请求包(DHCP REQUEST),以获取网络IP地址。这里假设新AP连接的是纯IPv6网络,新网络路由器会通过新AP给MN发送RA。收到RA后,MN配置地址并进行DAD。MN先发送NS(Neighbor Solicitation)包进行DAD(DuplicateAddress Detection)检测。因为DAD检测要一段时间,为了能在这段时间内继续发送和接受数据,MN先给新AP发送PSM,然后切换回旧AP上继续收发数据。给新AP发送PSM就是为了避免其他节点发送给MN的NA(NeighborAdvertisement)丢失。在此期间,MN设置了一个DAD定时器,大约1秒时间。定时器过后,MN再次切换回新AP上。
同上述,MN还给旧AP发送PSM以免丢失数据。为了简单,这里假设DAD成功(没有NA,这也是绝大多数情况下发生的事情),MN会执行L3层(网络层)切换。MN给HA发送BU。期间MN可多次切换回旧AP收发数据,如果BA迟迟未到(道理和上面一样,图中没有画出)。收到BA后,MN再切换回旧AP收取MN在新AP上时HA发给旧AP的数据(HA在收到BU之前发送给MN的数据都往MN的旧位置发送)。同样,在切换回旧AP前MN还给新AP一个PSM帧。这里MN从新AP上收到的数据包被缓存到INPUT BUFFER里,还没有提交给网络层。等到MN取完旧AP上的数据后,MN再断开和旧AP的连接并连接到新AP上。MN先往应用层发送来自旧AP的数据,然后再发送INPUT BUFFER中缓存的数据。在上述的过程中,当MN在新AP上且L3连接还没建立好时候(DAD成功之前),上层发送给网络的数据包会被暂时缓存在OUTPUT BUFFER中,在MN切换回旧AP上后发送出去。新旧AP之间切换时MN会依情况使用备用MAC地址或主MAC地址,图中为简明没有标出。
如图3所示,是本发明移动设备端的单接口无缝切换方法流程图。该流程的步骤包括:
步骤301,内核缓存初始化;
步骤302,生成备用MAC地址,建立AP连接,进行通信;
步骤303,通信过程包括检测备用AP以及通信质量;
步骤304,判断当前通信质量是否低于通信质量?若是,进入步骤305,否则转入步骤303;
步骤305,判断是否有备用AP?若有,则缓存上层数据,并进入步骤306,否则转入步骤303;
步骤306,向当前AP发送PSM置位的NULL帧,改变网卡频率,使用备用MAC向新AP发起连接请求,并发送DHCP请求和路由请求RS;
步骤307,判断是否先收到路由应答RA,若是,则进入步骤309,否则进入步骤308;
步骤308,判断是否先收到DHCP应答,若是,则配置IPv4的地址,并进入步骤312;
步骤309,配置IPv6的地址,设置DAD检测的计时器,发送NS,向当前AP发送PSM置位的NULL帧,改变网卡频率和MAC地址,切换回旧AP,进入步骤310;
步骤310,收发数据,并判断DAD检测的计时器是否超时,若超时,则向当前AP发送PSM置位的NULL帧,进入步骤311,若未超时,则继续收发数据;
步骤311,移动设备从当前AP切换到新AP,并判断IPv6的COA地址且DAD检测是否成功,若成功,则进入步骤312,否则切换到旧AP,并转入步骤303;
步骤312,发送BU,发送OUTPUT BUFFER数据,进入步骤313;
步骤313,初始化数据计时器,进入步骤314;
步骤314,发送数据,并判断数据计时器是否超时?若超时,则切换回旧AP,进入步骤315,否则继续发送数据;
步骤315,移动设备从旧AP接收数据,再切换回新AP;
步骤316,判断是否从新AP接收到来自HA的数据,若收到,则将数据缓存在内核缓存中,并进入步骤317,否则,转入步骤313;
步骤317,移动设备从新AP切换回旧AP,从旧AP接收数据;
步骤318,移动设备从旧AP切换回新AP;
步骤319,依次提交来自旧AP的数据、内核缓存中存储的从新AP接收的数据;
步骤320,移动设备断开与旧AP的连接,完成切换。
结合图1、2、3,下面通过一个具体实施例对本发明的技术方案进行描述:
因为DSMIPv6系统包含了MIPV6系统和MIP系统的功能,这里以DSMIP系统为例,使用本发明的移动设备从一个AP切换到另外一个AP所执行切换的主要步骤如下:
1)在移动设备的操作内核中设置内核缓存,并通过Linux的Netfilter机制对传输层发出的数据包进行必要的处理,包括两个方面:一,如果此时正在切换过程中,则截获应用层以及传输层的数据包,并把这些数据包保存在OUTPUT BUFFER中;二,必要的话(是指移动节点在与旧AP真正断开之前,连接到新AP上并收到来自新AP的数据包时,移动节点先把这些数据包缓存,不往上层提交,要到移动节点再次连接到旧AP上获取数据,并与旧AP断开后,移动节点先往上层提交来自旧AP的数据后才向上层提交缓存中的数据,这样就避免了数据包的乱序,因为来自旧AP的数据必然是比来自新AP的数据先发送的),也截获来自网络的包保存在INPUT BUFFER中。这些数据包将在恰当的时机才发送当网络上或被提交给网络层处理。
2)修改移动设备的WLAN网卡驱动,使其能够记录与不同AP的连接状态,并且能够在不和当前连接的AP发送Disassociation(取消连接)信令断开连接的情况下向另外一个AP发送Association(连接)信令。
3)维护一个备用AP列表,该列表通过WLAN驱动间歇性的扫描得到。它记录了除当前连接AP之外的在移动设备在传输范围内的其他AP的信息,包括这些AP的ESSID、信号强度、可用带宽等。
4)生成一个备用MAC地址,该地址可以通过对移动设备的WLAN网卡的MAC地址的少数关键位进行修改得到(比如,MN的一个接口的MAC地址为00-02-3f-07-09-66,则备用MAC可以通过修改该地址的第二个字节0为1,生成的备用MAC地址为01-02-3f-07-09-66,虽然这种方法生成的备用MAC地址有可能和本地链路上其他节点的MAC产生冲突,但可能性极其微小)。这样移动设备就有两个MAC地址,在本发明中,移动设备的除当前正在使用的MAC地址之外的另外一个MAC地址被称作“备用MAC地址”,当前正在使用的MAC地址成为旧MAC地址。
5)设置一个网络质量监视模块和一个2层切换控制模块,这两模块监控当前通信质量并触发必要的切换。
6)随着用户的移动,移动设备距离当前AP越来越远,信号越来越差,丢包率上升。网络质量监控模块发现当前网络质量已经低于设定阈值,通知2层切换控制模块,在备用AP列表中选择一个最好的AP(如信号好的,带宽大的,具体选择的标准不在本发明讨论范围内),准备连接。
7)2层切换控制模块先开启缓存功能,过滤所有来自传输层的数据,除了DSMIPv6Bind Update信令、DHCP地址请求,Router Solicitation(路由,RS)请求数据包外,其他所有的数据包将被过滤并缓存起来。
8)2层切换控制模块向当前AP(旧AP)发送NULL帧,其中PSM置位,通知当前AP自己进入睡眠模式,当前AP将为移动设备缓存来自HA的数据包。
9)2层切换控制模块控制移动设备向备用AP(目标AP,新AP)发起连接。并采用备用MAC地址进行连接,然后发送DHCP请求和RS请求。
10)下面分情况讨论:
(a)接入的网络是纯IPv6网络,或接入网络是IPv6和IPv4共存的网络并且移动设备收到DHCP应答之前先收到路由应答Route Advertisement(RA)。在这种情况下,移动设备可以先根据RA配置IPv6的COA地址(COA为CareOf Address的简写,是移动IP协议的术语)。对于使用MIPv6,DSMIPv6等移动节点而言,有两个地址,一个是家乡地址,另外一个是COA地址。COA地址是移动节点正在使用的用来通讯的地址,由接入网络分配,随着移动节点接入的网络的不同而不同,而家乡地址一直不变。比如,当移动节点从网络A移动到网络B时,它得到网络B为其分配的一个地址:202.198.39.1或2002:cc0:2026:3ff::1,这是COA地址。此时如果移动节点要和其他节点(CN,Correspondent Node)通信,移动节点会使用隧道封装数据包后发给HA。隧道外层的源地址就是COA地址,隧道内部是真正的发给CN的数据包,其源地址是移动节点的家乡地址。当HA收到隧道包后,它解开封装把里面的数据包发送到网络上。当CN收到这个数据包时,其源地址是移动节点的家乡地址,CN就以为移动节点还在家乡网络中,没有移动。移动IP协议对CN屏蔽了MN的移动行为。)并进行重复地址检测(Duplicate Address Detection,DAD),重复地址检测一般要持续1秒的时间。移动设备先发送邻居发现NS(是Neighbor Solicitation的缩写,指邻居发现请求包,是DAD检测的一个步骤,NS中包含了移动节点即将使用的地址,其他节点收到该报文时查看里面的地址是否已经被自己使用,若是,则发送NA)请求,然后再给新AP发送一个PSM置位的NULL帧,告诉新AP移动设备进入节电模式,这样新AP将为移动设备缓存可能的NA(是Neighbor Advertisement的缩写,指邻居发现请求应答包,是DAD检测的一个步骤,收到NA代表地址已被其他节点占用,DAD失败)。接着移动设备改变网卡频率接入到旧AP上,并通过向旧AP发送PULL帧获取这段时间来自HA的数据,同时释放内核缓存中来自上层的数据包,并开始正常通信。当1秒时间过了之后,移动设备再向旧AP发送PSM置位的NULL帧,改变网卡频率接入到新AP上。然后获取新AP上的数据判断DAD是否成功。如果DAD成功,则发送BU和其它上层数据,同时间歇性的改变网卡频率到旧AP上获取来自HA的数据,改变网卡频率之前都向正在连接的AP发送PSM置位的NULL帧。
(b)移动设备接入到一个纯IPv4网络,或其先收到DHCP应答。在这种情况下,移动设备可以先配置IPv4地址并立即可以用该地址通信。移动设备先发送BU,然后释放内核缓存中的数据。在从新AP收到数据之前,移动设备间歇性的从旧AP获取数据。二层切换(改变网卡频率接入到另外一个AP上)的时候都先向当前连接的AP发送PSM置位的NULL帧,让其为移动设备缓存数据。
11)等到移动设备从新AP上收到来自HA的数据时,则表明HA已经接收到了BU。此时,移动设备先缓存该数据(来自新AP)不往传输层提交,然后最后一次到旧AP上获取可能的数据,接着通过Disassociation信令断开和旧AP的连接,先提交从旧AP中获取的数据,再提交从新AP中获取的数据(在内核缓存里)。然后开始正常通信,DSMIPv6的切换完成。
图4是一个本发明的使用场景。其中,移动设备从AP1覆盖的网络移动,到接近AP1网络覆盖的边缘的时候,移动设备开始从AP1切换到AP2,使用本发明所描述的技术方案。结合图3以及上述实施例,对该移动设备的切换过程进行描述。
移动设备MN最初接入到AP1上并通过AP1进行通信。移动设备使用DSMIPv6协议,和CN(Corresponding Node,通信节点)的通信通过隧道的方式从HA中转。随着MN的移动,MN逐渐移出AP1的通信范围,MN检测到通信质量正在变差,同时MN也检测到周围有一个信号比较好的AP2。MN准备从AP1切换到AP2上。MN通过改变自己的MAC地址的关键几位,生成备用MAC地址,称为MAC_B(原有的MAC地址称为MAC_A)。MN首先给AP1发送一个PSM标志位的NULL帧,表示当前MN进入休眠模式,AP1将为MN缓存来自HA的数据包。然后MN向AP2发起连接,使用MAC_B,接着发送DHCP请求和路由请求RS。然后等待DHCP或RA。假设收到RA,则MN开始配置地址,并进行DAD检测。在这段时间内,MN切换回AP1(用MAC_A,切换前先给AP2发送PSM标志位的NULL帧)进行通信,直到DAD时间过后,MN再切换回AP2。然后从AP2接收数据包看是否DAD成功。如果DAD成功,则通过AP2发送BU。但BU在路上还需要一段时间才能到达HA,在这之前HA依然向AP1发送数据,而AP1也为MN缓存这段数据。在发送BU后的一段时间内,MN也可以发送数据。但同时MN设置了一个计时器,当计时器过了以后,MN切换回AP1获取数据,如此反复。直到MN从AP2接收到来自HA的数据,MN先把这段数据缓存,然后MN最后一次切换回AP1获取数据,断开与AP1的连接,先提交来自AP1的数据,再提交内核缓存中的数据,切换完成。如果MN在AP2的网络中先收到DHCP的地址请求应答,则MN先配置IPv4 COA,然后发送BU和数据,并在AP2和AP1之间切换,如上所述,直到从AP2接收到来自HA的数据,MN最后一次从AP1取数据并断开和AP1的连接,然后依次向上提交来自AP1和AP2的数据,切换完成。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。