迅维网

标题: WiFi和移动数据之间切换为什么会一定断线? [打印本页]

作者: 47971655    时间: 2017-12-22 10:27
标题: WiFi和移动数据之间切换为什么会一定断线?
比如手机在外面用移动数据(4G网络),一回到家里,自动连上了家里的WiFi,但是不管网络信号多好,连上WiFi的速度多快,这之间必然会有一个断点,手机处于无连接状态,用很多手游都能测试出来,会“失去连接”“需要重新连接”,为什么在这之间不能实现顺滑的“无缝”过渡?技术上很难吗?
作者: 13633808    时间: 2017-12-22 10:27
你上网,网络会分给你一个IP地址,你使用这个IP地址和外界通信。用移动数据上网时,移动网络分给你一个IP地址,用这个IP地址可以通信。连wifi之后,wifi路由器也分给你一个IP地址,用这个IP地址也能通信。这个时候,继续使用移动网络分配的IP地址,通过移动网络通信完全没有问题。
问题在于终端,大多数终端的策略是连上wifi后就不在使用移动数据APN对应的连接,而是使用wifi,这个过程中换了IP,所以上层应用会断线。有些应用会直接重连,有些不会。现在的手机基本都有多连接能力,只要做少量修改,就可以在连上wifi之后继续维持蜂窝网络连接不变,但这样会让很多用户疑惑,为什么我连上wifi了还会走流量。
还有一个策略是通过网络解决这个问题,类似于移动IP,在网络中设置一个锚点,用户不管使用什么网络,都和这个锚点建立隧道,对外通信使用这个锚点分配的IP,但这个方案各种麻烦事也不少。
作者: dzlqsq    时间: 2017-12-22 10:27
程序端到端之间有检测链接状态的心跳比特,都是毫秒级的单位。

假设你移动网略是移动的4G,也就是TD-LTE,从你断开wifi到发起到基站的接入请求到分配网络链路资源,这中间的时延(即使肉眼觉得很短),对于上层程序的监听端口,依然会导致连接超时报错。
作者: yanbing2796    时间: 2017-12-22 10:27
我同意 @某火山 的答复,主要是由于IP链接变化造成的。但是随着LTE的普及,现在已经有技术来实现平滑无缝的在LTE和WiFi之间切换了。不过有个前提,WiFi和LTE要来自于同一运营商。基本原理是通过一个叫做ePDG的设备,让WiFi也经由PGW来接入internet。这样ePDG和SGW就分别管理WiFi和LTE的接入,PGW统一为客户端分配IP地址,这样在WiFi和LTE之间切换时,可以不影响正在使用的业务。
作者: 694207667    时间: 2017-12-22 10:27
在Android源码里,每一种网络都有一个对网络的评分,比如数据网络基础分是50分,WIFI网络基础是60分,当你连接着数据网络并开始连接WIFI时,所有网络都会对比WIFI的60分和自己网络分数的进行对比,如果这个分数比自己得高,比如正在连接的WIFI有60分,而自己的数据网络只有50分,这时在连接WIFI时会自动断开数据网络WIFI则继续连接。WIFI连接过程,需要重新DHCP来获取IP地址,而不是原来数据网络的IP地址,所有会有一个网络断开和重新连接的过程。从外部看,就是会有一小会的网络断开。




欢迎光临 迅维网 (https://www.chinafix.com/) Powered by Discuz! X3.4