Secrets of Mobile Network Performance Reading Notes

Secrets of Mobile Network Performance 主要探究了手机网络的性能瓶颈在哪里以及如何优化。

文章结构

  • Introduction
  • What Are You Waiting For?
  • Mobile Cellular Networks
    • Baseband Processor
    • Cell Site
    • Backhaul Network
    • Radio Network Controller
    • Core Network
    • Power Conservation
      • Active
      • Idle
      • Disconnected
  • Network Protocol Performance
    • Transmission Control Protocol
      • TCP Fast Open
      • Initial Congestion Window
    • Hypertext Transport Protocol
      • Keepalive
    • Transport Layer Security
      • Refresh on Failure
      • Asynchronous Refresh
  • Conclusion

Introduction

文章开头就说明了手机网络的性能瓶颈在于 Latency(延时),在逻辑上分为两个部分,第一部分探索网络延时在 Mobile Cellular Network 中是如何产生的,第二部分介绍了一些减小网络延时的软件技术。

What Are You Wating For?

是什么造成了网络延时?可以用 Round-trip time (RTT) 来测量,RTT 就是一个请求从请求方发送到接收方,响应再从接收方返回给接收方的整个过程的时间,就好像 A 和 B 打乒乓球,乒乓球从 A 到 B 再从 B 到 A 的整个过程的时间。

假设 10KB 数据从 C 到 S 要交换 4 次消息,也就是 4 个来回,每个来回的时间是 100ms ,最后算得的吞吐量是 25KB/s ,如果只需要一次消息交换,那吞吐量就是 100KB/s 。无论带宽多高,如果消息交换的次数太多,吞吐量还是会变低。解决方案很明显:尽量避免 clientserver 之间的 round-trip message exchange.

Mobile Cellular Networks

这一章说的是手机蜂窝网络的组成和工作原理,并从中分析性能瓶颈所在。

Figure 1

如图,主要包括 5 个部分。

第一个部分是手机内嵌的 Baseband Processor ,该组件用于实现所有无线网络功能,类似于使用无线电波的电脑 modem. 而它处理网络任务需要固定时长,但是都在微秒级别,在网络延时组成中可以忽略不计。

第二个部分是 Cell Site ,用于接收手机的无线电波,是手机网络的入口。它负责处理特定的网络任务,最新一代组件还负责管理手机设备的任务,如 network registration or transmission scheduling(之前是由 Radio Network Controller 负责)。这里的任务处理时间也是微秒级别,在网络延时中可以忽略不计。

第三个部分是 Backhaul Network (回程线路网络),用于连接 Cell SiteRadiow Network ControllerCore Network ,由于电路交换网络、旧式网络使用的同步等待协议、物理基础设施的带宽限制等,这里会产生非常严重的网络延时,是网络延时的核心组成。

第四个部分是 Radio Network Controller ,管理 Cell Site 和手机,由于数据要到达它需要经过 Backhaul Network ,会造成较大延时,所以如果某些任务需要来回的,就尽量挪到 Cell Site 去做。

第五个部分是 Core Network ,这里是因特网的入口,起到类似网关的作用,在这里运营商会做类似流量计费的工作,因此需要拦截流量进行分析,但是这里的拦截分析时间在网络延时中也是可以忽略不计的。

随后说了一下 Power Conservation 的机制,见下图。

Figure 2

手机在收发数据的时候是最耗电的,此时处于 Active 状态,在收发数据完毕一定时间后进入 Idle 状态,此时网络连接可以随时恢复,当空闲状态一定时间后切换回 Disconnected 状态,目的是为了节约电量,而从 Disconnected 状态切换到 Active 状态需要花费数百毫秒,也是延时的一部分。

Network Protocol Performance

以上部分对于我们软件开发者来说都是不可控制的,接下来回到我们可以控制的部分,也就是网络协议的性能分析和优化。主要介绍了 TCPHTTPTLSDNS 等网络协议对避免 Round-trip 的优化。

TCP

作者对 TCP 的优化先介绍了 TFO(TCP Fast Open)TFO 是对 TCP 的扩展,由 Google 开发,目前还是 RFC 的草案,还没形成正式标准。其思路是在三次握手过程中携带要传输的数据,即使此时 TCP 连接还没有正式建立 ,如下图:

Figure 3

在第一次建立 TCP 连接或 TFO Cookie 超时时,客户端会和服务端正常三次握手建立连接,并且客户端会拿到服务端生成的 TFO Cookie ,用于后续的身份认证。随后,如果客户端要和服务端建立 TCP 连接,可以在 SYN 报文中携带数据,不过要加上 TFO Cookie ,这就避免了恶意攻击。

对于重复的 SYN + data,TFO选择接受重复,它的观点是可以忍受幂等的请求(例如 GET),并交给上层的应用程序去处理。

之后介绍了 TCP拥塞控制 ,包括拥塞窗口 Congestion Window 和慢启动等机制,避免拥塞的网络性能进一步恶化。

HTTP

作者对 HTTP 的优化介绍了 Keepalive 机制,让多个HTTP连接复用同一条TCP连接收发数据,从而避免多个 TCP三次握手 带来的 Round-trip 耗时.

TLS

TLS 的握手需要两次数据交换(两个 Round-trip ),所以对比起 HTTPHTTPS 会更慢。

DNS Cache

为了避免频繁的 DNS查询 ,系统都会提供 DNS Cache 的功能,在 DNS Cache 中每条记录都会有生存时间限制(TTL),少的几秒多的几天,TTL 较小的记录通常用于缓解服务器故障或者负载均衡等用途。由于系统自身的 DNS Cache 的存在,避免了对 DNS服务器 的网络请求,所以避免或减少了不必要的网络查询。

Refresh on Failure 是减小服务器故障时间和保障客户端性能之间的平衡点。由于 TTL 较小的记录通常用于服务器故障时的解析,所以如果严格遵循 DNS Cache 规则,这些记录将频繁被清除,并引发客户端进行频繁的DNS网络查询,为了避免这样的情况,这里可以仅在 TCPHTTP 等高层协议遇到没有覆盖到的错误才进行刷新。

Asynchronous Refresh 顾名思义就是异步刷新,对于超时的 DNS Cache 记录,在后台发起异步的DNS网络查询并刷新 DNS Cache,这样就避免了在需要使用到该DNS记录时才去同步查询带来的延时。

Conclusion

要提高手机网络性能,就要避免网络延时,最主要的思路就是避免或减少多次消息交换(Round-trip),而软件设计人员需要在网络协议中寻求突破。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
射频电路设计的秘密包括以下几个方面: 首先是频率的选择和控制。在射频电路设计中,频率是一个非常关键的因素。因此,设计师需要选择合适的频率范围,并确保射频电路在这个频率范围内工作稳定。此外,频率的控制也非常重要,设计师需要设计合适的调谐电路和频率合成器,以便灵活地控制射频信号的频率。 其次是功率的管理和放大。射频电路中的功率管理是非常重要的,设计师需要合理地控制信号的功率,并确保电路的输出功率达到设计要求。此外,射频放大器的设计也是非常关键的,设计师需要选择合适的功率放大器,并合理地设置放大倍数和增益,以满足射频信号的放大需求。 还有就是杂散和谐波的控制。在射频电路中,杂散和谐波会对信号质量产生负面影响。设计师需要采取合适的措施来控制杂散和谐波的产生和传播,比如使用合适的滤波器、隔离器和衰减器等。 另外还有电磁兼容性和抗干扰性的设计。射频电路常常会面临电磁干扰和其他干扰源的影响,因此设计师需要采取适当的措施来保证电路的电磁兼容性和抗干扰性,比如合理地布线、屏蔽和接地等。 最后还有制造工艺和可靠性的考虑。射频电路的制造工艺对于电路的性能和可靠性有着重要影响。设计师需要选择适当的制造工艺,并确保电路能够在各种环境条件下稳定运行。 综上所述,射频电路设计的秘密包括频率选择和控制、功率管理和放大、杂散和谐波的控制、电磁兼容性和抗干扰性的设计,以及制造工艺和可靠性的考虑等方面。这些方面相互关联,需要综合考虑,才能设计出高性能和可靠的射频电路。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值