android - 为什么智能手机在网络变化期间一直连接到服务器
问题描述
我只是一个开始学习网络编程的新手。我被告知如果网络发生变化,套接字将被关闭。由于 IP 更改,部分下载将下降。但我真的很想知道,智能手机不断地从一个地方移动到另一个地方,从一个网络到另一个网络,甚至是 4/5G。智能手机似乎可以无缝切换网络而不会丢失连接。套接字不是关闭并且连接丢失了吗?新的 TCP 连接不需要新的 3whs 吗?
PS 我的猜测是,现在网络速度很快,我们不会注意到新的 3whs 和 connect()。它会像 wget -c 一样使用新 IP 继续连接,但速度非常快。我不知道我的猜测是否正确。谢谢你。
解决方案
首先 ,配置良好的网络服务器(谷歌)允许恢复下载,因此对于此类服务器,您的切换网络行为受支持,它还取决于所使用的客户端(用于下载的应用程序必须支持此活动)。
其次 ,有一个标准被设计为允许在例如 Wifi 和手机之间进行这种无缝切换,它被称为“移动 IP”。实际上,它的工作原理有点像 VPN。无论您使用何种互联网连接,您的公共 IP 都保持不变,并且移动 IP 系统涵盖了 Wifi 和手机网络之间的变化。现在我们也有了激进的 WiFi/小区切换的概念,在 WiFi 信号低或不存在的情况下,蜂窝数据接管。
推荐阅读
- amazon-web-services - 如何设置 Lambda/Step Functions,以便在空闲 API 响应时不向我收费?
- sql - 有没有办法将 BigQuery 交互式 shell 结果保存到文件中?
- javascript - Google Scripts - 在另一个函数中调用函数时出错
- android - 我的应用程序在收到提供 E/AndroidRuntime 的 Firebase 通知时崩溃:致命异常:Firebase-FirebaseMessagingService 错误
- search - 在 SuiteScript 搜索中获取自定义列表非活动字段
- python - 有没有办法解决 pytesseract 和 python 的权限被拒绝错误?
- php - 使用 PHP 连接 Microsoft SQL Server 2014
- vb.net - Dotnetbar - 滑动面板的起始位置,滑入滑出
- assembly - 比较字符串而不在汇编中使用jmp?
- webassembly - 在我的 AssemblyScript 模块和我的 JS 之间共享内存的正确方法是什么?