我对移动连接中的 WebSocket 通信有疑问。
我想知道当用户在不同网络之间迁移时,如何在移动网络中长时间处理长期存在的 TCP 连接。当切换(hand-off)发生时已经建立的 TCP 连接会发生什么?
在这种情况下,不同的技术(3G、4G 等)是否表现不同?
如果您也可以留下一些在线资源或文章,我将不胜感激,我可以在这方面阅读更多内容?
先感谢您 :)
我对移动连接中的 WebSocket 通信有疑问。
我想知道当用户在不同网络之间迁移时,如何在移动网络中长时间处理长期存在的 TCP 连接。当切换(hand-off)发生时已经建立的 TCP 连接会发生什么?
在这种情况下,不同的技术(3G、4G 等)是否表现不同?
如果您也可以留下一些在线资源或文章,我将不胜感激,我可以在这方面阅读更多内容?
先感谢您 :)
切换对用户始终是透明的——在 LTE、UMTS 等商业移动网络上的塔之间转换时,所有 TCP 和语音连接始终保持活动状态。您可能会遇到数据停止流动的某些时间段,但就是这样。
我有好几次机会通过在 T-Mobile USA 的HSPA+全国网络上进行的有趣实验来验证这一点。从一个主要城市开车 12 小时以上到另一个城市,无需关闭手机。查看外部 IPv4 地址终止的区域(通过使用 traceroute)。您可能会注意到它仍然在您开始旅行的同一区域。现在重新启动电话,然后查看外部 IPv4 地址现在路由到的位置。您会注意到,现在它很可能在离您所在位置更近的主要都会区终止。即,您在运营商核心网络中的连接不仅会跟随您在给定的城市、地铁或州内,而且还会在州和时区之间跟随您。
这样做的原因是运营商有一个核心网络,所有外部连接都由核心网络的数据包网关处理,该网关跟踪所有连接。有关这方面的更多信息,请参见《高性能浏览器网络》(HPBN.co)一书的第 7 章。
这不是一个真正的 SO,而是一个程序员的问题,我看不出你为自己研究了什么,但你当然不能依靠连接来保持活力,无论是否移动。
事实上,移动运营商通过在一定时间或数据后重置它们来终止长期连接。因此,无论如何,您都应该准备好在套接字异常时重新连接。