【问题标题】:Will mobile device network switch affect http communication?移动设备网络切换会影响http通信吗?
【发布时间】:2017-05-07 17:30:59
【问题描述】:

对于移动应用程序,可以假设网络可能是间歇性的,或者随着用户不断移动,网络可能会从一个切换到另一个。例如,您的设备已连接到 startbucks wifi,并且您在拿起咖啡走出商店之前正在使用该应用程序 -> 您的移动设备网络可能会从 wifi 切换到运营商网络、3G/4G/LTE。即使使用运营商网络本身,它也可能根据您所在位置的覆盖范围在 3G/4G/LTE 之间切换。

问题, 这种断断续续的网络,或者频繁的网络切换会影响http通信吗? 例如,通过 Wifi 发送了一个 http 请求,而在服务器处理请求时,设备已经切换到 4G。设备是否仍能收到响应? 如果是,Http 或 TCP 是如何设计来支持这种情况的? 如果否,我们是否应该尝试从应用层解决问题?以及如何?

【问题讨论】:

    标签: http networking mobile tcp


    【解决方案1】:

    设备还能收到响应吗?

    对于目前的做法,没有。切换网络后:

    1. 设备的公共 IP 地址已更改。
    2. TCP 连接是基于 IP 协议的,所以当前所有的 TCP 连接都会被破坏。
    3. HTTP 是基于 TCP 连接的,所以也会被销毁。

    其实,你可以做一个简单的实验来验证这一点:把一个网页放到互联网上,让网络服务器延迟30秒的页面传递。在等待响应的同时访问此页面并切换网络。

    然而,这是移动世界的一个经典问题,因此正在做一些工作来为移动设备提供一个恒定 IP,当设备从一个网络到另一个网络。您可以查看维基百科中的Mobile IP,了解有关各种技术和协议的更多信息。

    如果否,我们是否应该尝试从应用层解决问题?

    这取决于您是否可以容忍应用程序的网络中断。如果是静态网页的话,我觉得完全可以不用管这个问题,等Mobile IP以后的技术改进吧。如果是高度依赖网络的应用,比如在线视频或者股市应用,我觉得这个问题应该在应用层解决。

    怎么做?

    有 3 种方法可以修复/解决此问题(可能更多):

    1. 缓存。预取资源,以便在 TCP 连接被破坏并重新连接时,设备可以使用缓存的资源。这适用于在线音频/视频应用,但不适用于无法预取任何资源(例如实时股市数据)时。
    2. 将 TCP 重新连接作为第一优先级。检查您的代码,当 HTTP 因 TCP 连接被破坏而失败时,请尽早重新发送 HTTP 请求。
    3. 在发生网络中断时改善用户体验。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多