移动设备网络交换机是否会影响http通信?

时间:2017-05-04 17:57:18

标签: http networking mobile tcp

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

问题, 这种间歇性网络或频繁的网络交换会影响http通信吗? 例如,使用Wifi发送了http请求,当服务器正在处理请求时,设备已经切换到4G。设备是否仍然能够收到响应? 如果是,那么Http或TCP如何设计支持这种情况? 如果否,我们是否应该尝试从应用层解决问题?怎么样?

1 个答案:

答案 0 :(得分:2)

设备是否仍然能够收到回复?

对于目前的做法,编号。网络切换后:

  1. 设备的公共IP地址已更改。
  2. TCP连接基于IP协议,因此所有当前的TCP连接都将被破坏。
  3. HTTP基于TCP连接,因此也会被销毁。
  4. 实际上,您可以进行一个简单的实验来验证这一点:在互联网上放置一个网页,让网络服务器延迟页面传送30秒。访问此页面并在等待响应时切换网络。

    然而,这是移动世界中的一个典型问题,因此有些工作正在为移动设备提供常量IP ,这将使设备保持TCP& HTTP 活着从一个网络切换到另一个网络。您可以查看维基百科中的Mobile IP,了解有关各种技术和协议的更多信息。

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

    这取决于您是否可以容忍应用程序的网络中断。如果它是一个静态网页,我认为完全可以解决这个问题,并等待将来移动IP 技术的改进。如果它是一个高度依赖网络的应用程序,如在线视频或股票市场应用程序,我认为这个问题应该在应用程序层解决。

    以及如何?

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

    1. 高速缓存。预取资源,以便在销毁和重新连接TCP连接时,设备可以使用缓存资源。这在在线音频/视频应用程序中运行良好,但在没有预取资源(例如实时股票市场数据)时不适用。
    2. 将TCP重新连接作为第一优先级。检查代码,当HTTP因TCP连接损坏而失败时,请尽早重新发送HTTP请求。
    3. 在发生网络中断时改善用户体验。