为什么移动networking有很高的延迟? 他们怎样才能减less?

我越来越多地看到移动networking技术被用于在无法访问的地区访问互联网。

虽然移动networking作为主要的互联网连接通常尚不可行,但移动技术看起来是一个紧急回退的好select。

带宽不是问题:使用HDSPA,几MBit的速度是可能的,这提供了一个像样的上行链路。 然而,我从个人的经验中知道,移动networking的互联网链接(通过GPRS,UMTS等)比普通的DSL(UMTS为200-400ms,GPRS甚至更多)具有更高的延迟。 这当然使得它们不适用于许多应用,例如VoIP和电话会议。

  • 这个延迟来自哪里?
  • 有什么技术可以缓解这个问题,使UMTS在低延迟应用中可行吗?

我认为必须有一些固有的技术原因,但是它是什么? 这与数据如何通过无线传输有关吗? 而如果是因为无线传输,为什么WLAN有更低的延迟?

    Ilya Grigorik的书“高性能浏览器networking”正是如此。 有一整章(第七)专用于移动networking。 该书指出,高性能问题几乎总是与延迟相关联,我们通常有足够的带宽,但协议阻碍。 无论是TCP 慢启动 , 无线电资源控制器 (RRC)还是次优configuration。 如果您只在移动networking中遇到延迟问题,那就是他们devise的方式。

    书中有一张关于典型延迟的表格:

    表7-2。 活动移动连接的数据速率和延迟

    一代| 数据速率| 潜伏
     2G |  100-400 Kbit / s |  300-1000毫秒
     3G |  0.5-5 Mbit / s |  100-500毫秒
     4G |  1-50 Mbit / s |  <100 ms
    

    虽然与延时非常相关,但TCP特性的三次握手或慢启动并不能真正回答这个问题,因为它们同样影响有线连接。 真正影响移动networking延迟的是IP层。 如果IP下的图层延迟半秒,与服务器的TCP连接将花费约1.5秒(0.5s * 3),因为您看到这些数字加起来非常快。 如前所述,假设手机不闲置。 如果手机空闲,它首先必须“连接”到networking上,这需要与塔台协商资源预留(简化),在LTE中需要50-100ms,在3G中需要几秒钟,更多在早期的networking中。

    图7-12。 LTE请求stream延迟

    1. 控制平面等待时间:固定的,RRC协商和状态转换的一次等待时间成本:空闲到活动<100ms,hibernate到活动<50ms。
    2. 用户平面延迟:设备和无线电塔之间传输的每个应用程序数据包的固定成本:<5 ms。
    3. 核心networking延迟:将数据包从无线电塔传输到分组网关的运营商相关成本:实际上是30-100毫秒。
    4. Internet路由延迟:运营商的分组网关与公共Internet上的目标地址之间的可变延迟成本。

    实际上,一旦设备处于连接状态,许多部署的4Gnetworking的端到端延迟趋向于在30-100ms范围内。

    所以,你有一个请求(图8-2。“简单的”HTTP请求的组件):

    1. RRC协商50-2500毫秒
    2. DNS查找1 RTT
    3. TCP握手1 RTT(预先存在的连接)或3 RTT(新连接)
    4. TLS握手1-2 RTT
    5. HTTP请求1-n RTT

    并与真实的数据:

    表8-1。 单个HTTP请求的延迟开销

                            |  3G |  4G
    控制平面|  200-2,500 ms |  50-100毫秒
     DNS查找|  200 ms |  100毫秒
     TCP握手|  200 ms |  100毫秒
     TLS握手|  200-400 ms |  100-200毫秒
     HTTP请求|  200 ms |  100毫秒
    总延迟开销|  200-3500 ms |  100-600毫秒
    

    此外,如果您有一个交互式应用程序,您希望在移动networking中执行适度的操作,则可以尝试禁用Naglealgorithm(内核等待数据合并为更大的数据包,而不是发送多个更小的数据包)寻找testing方法在https://stackoverflow.com/a/17843292/869019


    由Velocity Conference赞助的http://chimera.labs.oreilly.com/books/1230000000545/index.html可以免费阅读整本书&#x3002; 这是一本非常值得推荐的书,不仅对于开发网站的人来说,对于每个通过某个networking向客户提供字节的人都是有用的。

    我怀疑使用“蜂窝宽带”技术时可能遇到的很大一部分延迟是一个复杂的问题。

    有距离,但正如syneticon-dj所提到的,这实际上只是往返时间的一小部分。

    以下是需要考虑的事情…作为客户(特别是作为家庭或小企业客户)遇到的延误可能是人为引起的,至less在某种程度上是这样。 有一类用于M2M利用的3G和GSM通信,SCADA等,有时可以提供更高的可靠性和更低的延迟传输。 结果,他们通常是非常昂贵的。

    所以基本上,你反对stream量整形。 无论是ISP /电信公司正在这样做,以优先考虑更好的付费客户,或者你连接的单元有点忙,或者他们的整个networking有点呆滞(尝试00:00在2012年1月1日00:00例)。

    但是,有一个办法可以解决这个问题,但这有点鬼鬼祟祟。 在stream量通过移动WWAN之前,基本上需要一个TCP连接代理。 这个代理实质上会向你的应用发送一个欺骗性的ACK,因为真正的ACK可能会被ISP的stream量整形所延迟。
    这显然是可疑的,但一些卫星提供商使用这种机制,使延迟似乎低于实际。

    由于露天通信的性质,手机调制解调器技术遭受高延迟:WLAN传输距离通常比您提到的其他技术短得多,因此这是延迟较低的原因之一。

    有点迟到的游戏,但你可能想看看我的性能日历的文章有关的主题: http : //calendar.perfplanet.com/2012/latency-in-mobile-networks-the-missing-link/

    tl; dr – 移动等待时间的一个主要部分是由于回程的未优化路由。