为什么移动网络具有高延迟?如何减少它们?


39

我越来越多地看到移动网络技术被用于在其他地方无法获得的互联网访问。

虽然移动网络通常尚不适合作为主要的Internet连接,但移动技术似乎是紧急回退的不错选择。

带宽不是问题:使用HDSPA,可以达到几个MBit的速度,从而提供了不错的上行链路。但是,根据我的个人经验,我知道移动网络Internet链接(通过GPRS,UMTS等)的延迟要比常规DSL(UMTS为200-400毫秒,而GPRS更高)更长。当然,这使它们不适用于许多应用程序,例如VoIP和电话会议。

  • 延迟从何而来?
  • 是否有可用的技术可以缓解此问题,从而使UMTS在低延迟应用程序中可行?

我认为一定有一些固有的技术原因,但这是什么?它与空中传输数据的方式有关吗?如果是由于无线传输,为什么WLAN的延迟要低得多?


6
属于runningamajortelecom.stackexchange.com。;-)
ceejayoz'5

移动设备类型,手机信号塔位置,信号障​​碍等
DanBig 2012年

3
这个问题不适合超级用户。它属于这里。
resmon6'5

2
他们会克服它。作为网络工程师,我期待看到对这个问题的深思熟虑的答案。
resmon6

Answers:


46

Ilya Grigorik的《高性能浏览器网络》一书正是回答了这一问题。整章(第7章)专门讨论移动网络。该书指出,高性能的问题几乎总是与延迟有关,我们通常有足够的带宽,但协议会妨碍您。无论是TCP 慢启动无线资源控制器(RRC)还是次优配置。如果仅在移动网络中遇到较差的延迟,这就是它们的设计方式。

书中有一张表格介绍典型延迟:

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

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

尽管与延迟非常相关,TCP特性的三向握手或慢启动并不能真正回答问题,因为它们同样影响有线连接。真正影响移动网络延迟的是IP下的层。如果IP下的层的延迟为半秒,则与服务器的TCP连接将花费约1.5秒(0.5s * 3),因为您看到的数字加起来很快。如前所述,假设移动设备没有空闲。如果手机空闲,则它首先必须“连接”网络,这需要与塔架协商资源储备(简化),并且在LTE中花费50-100毫秒,在3G中花费数秒,甚至更多。在较早的网络中。

图7-12。LTE请求流延迟

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

实际上,一旦设备处于连接状态,许多已部署的4G网络的端到端延迟往往会在30-100毫秒范围内。

因此,您有一个请求(图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毫秒| 50–100毫秒
DNS查找| 200毫秒| 100毫秒
TCP握手| 200毫秒| 100毫秒
TLS握手| 200–400毫秒| 100–200毫秒
HTTP请求| 200毫秒| 100毫秒
总延迟开销| 200–3500毫秒| 100–600毫秒

另外,如果您有一个交互式应用程序想要在移动网络中正常运行,则可以尝试禁用Nagle算法(内核等待数据合并为较大的数据包,而不是发送多个较小的数据包),寻找测试方法在https://stackoverflow.com/a/17843292/869019中


由Velocity Conference赞助的https://hpbn.co/上的每个人都可以免费阅读整本书。这是一本非常值得推荐的书,不仅对开发网站的人有用,对于在某个网络上为客户端提供字节服务的每个人都非常有用。


感谢您提供的信息,非常有趣。既然不是每个人都可以读这本书(并且答案应该独立存在):您能否进一步解释一下TCP缓慢启动,无线电控制器和配置如何导致延迟?
sleske 2014年

1
我刚刚用书的片段和表格编辑了答案,因此它很有用。
JorgeNerín2014年

2
自我注意:关于延迟的另一篇有趣的论文:HSPA数据网络中的延迟,高通公司。
sleske 2014年

非常感谢。我正试图向老板解释为什么我们在远程部署的自助服务亭的3G调制解调器延迟方面遇到麻烦,而这使它无法正常工作。
jklemmack 2014年

4

我怀疑使用“蜂窝宽带”技术时可能会遇到很大比例的延迟,这是许多情况的复合问题。

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

这里有一些需要考虑的问题……您作为客户(尤其是家庭客户或小型企业客户)遇到的延迟可能是人为导致的,至少在某种程度上是人为造成的。对于M2M应用,SCADA等,存在一类3G和GSM通信,有时可以提供更高的可靠性和更低的延迟传输。结果,它们通常非常昂贵。

因此,基本上,您需要进行流量整形。ISP / Telco这样做是为了优先安排收费较高的客户,或者您所连接的小区有点忙,或者他们的整个网络都有些呆滞(请在2012年1月1日格林威治标准时间00:00,对于例)。

但是,所有这些都可以解决,尽管有点偷偷摸摸。在通过移动WWAN进行流量访问之前,您基本上需要一个TCP连接代理。由于实际的ACK可能会因ISP的流量整形而延迟,因此该代理实际上会将欺骗的ACK发送到您的应用程序。
这显然令人怀疑,但是许多卫星提供商使用此机制使延迟看起来比实际的要低。


tcp代理是一个有趣的想法,它将帮助TCP更好地利用可用带宽。但是,这实际上对OP要求的应用程序类型没有帮助。连接中的延迟是用户可见的。我认为您可能可以使用Phoebus: e2epi.internet2.edu/phoebus.html作为此类TCP代理。
丹·普里兹

2

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

tl; dr-移动延迟的主要部分是由于回程上的路由未优化。


有趣的一点。但是,这仅解释了部分问题。GPRS通常具有500-1,000ms的延迟。整个大陆的延迟通常不超过200-300毫秒,因此即使是非常浪费的路由也不应给您1,000毫秒。
sleske

@sleske我怀疑使用GPRS(和其他旧技术)会遇到带宽瓶颈。您可以在开始排队之前以56kb / s(最大)的速度塞入这么多数据包(也许我错了-但是56kb / s并不意味着每秒大约四个1500字节帧吗?)。
r0u1i 2012年

回传不是答案。至少从Metro的角度来看。SLA要求在我一直到8-12ms范围内的任何地方都必须在运营商以太网上进行回程通信,以连接MSC / MTSO。蜂窝运营商如何将流量从那里路由到骨干是他们的事,但与普通的ISP /非蜂窝流量应该没有什么不同。

1

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


6
在这里,距离确实是个小问题。空气中无线电波的传播速度非常接近真空中的光速(大约300.000 km / s),因此即使3 km的距离也仅占0.02 ms的往返延迟。
比特兔(2012年

2
@ syneticon-dj您的部分正确的解释是,通往塔楼的旅程只是蜂窝网络延迟的一小部分(非常小)。还存在传输冗余(无线电链路在现实世界中永远都不是完美的,并且纠错本质上是引起延迟的),回程到电信CO /交换大楼(通常是如今在分组网络上,可能是一跳或多跳) ,将您连接到CO上的语音或数据链路,然后假定我们正在谈论的是The Big Bad Internet上存在的所有固有延迟的数据连接。
voretaq7

1
我还会添加冲突检测/避免冲突算法和当前的操作参数(例如降低的传输速度导致增加的比特时间,这应该占1-4 ms)。但是我对UMTS的了解还不足以组成一个全面的答案。
the-wabbit 2012年

@ syneticon-dj好点;我写了一篇关于CDMA技术的论文,但是那是很久以前的事了!
艾萨克·巴特2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.