sle*_*ske 41 networking mobile-devices latency gprs
我越来越多地看到移动网络技术被用于在原本无法访问的地区访问互联网。
虽然移动网络通常还不能作为主要的互联网连接,但移动技术看起来是紧急后备的一个不错的选择。
带宽不是问题:使用 HDSPA,数 MBit 的速度是可能的,这提供了不错的上行链路。但是,我从个人经验中了解到,移动网络互联网链接(通过 GPRS、UMTS 等)的延迟比常规 DSL 高得多(UMTS 为 200-400 毫秒,GPRS 甚至更长)。这当然使它们不适合许多应用,例如 VoIP 和电话会议。
我认为一定有一些内在的技术原因,但它是什么?它与数据如何通过空中传输有关吗?如果是因为无线传输,为什么 WLAN 的延迟要低得多?
Jor*_*rín 48
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 请求流延迟
在实践中,一旦设备处于连接状态,许多已部署的 4G 网络的端到端延迟往往在 30-100 毫秒范围内。
因此,对于一个请求(图 8-2。“简单”HTTP 请求的组成部分):
并使用真实数据:
表 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 算法(内核等待数据合并成更大的数据包,而不是发送多个更小的数据包)寻找测试它的方法在/sf/answers/1249030471/ 中。
每个人都可以在Velocity Conference 赞助的https://hpbn.co/ 上免费阅读整本书。这是一本非常推荐的书,不仅对开发网站的人有用,而且对通过某些网络向客户端提供字节服务的每个人都很有用。
归档时间: |
|
查看次数: |
46430 次 |
最近记录: |