Android Network 架构总览(图文)

时间:2019-02-28 02:46:09  来源:本站收集整理  作者:学无止境

 文章参考的是Android 7.1 的源码

 
如下图所示,Android系统的网络架构主要分为三个部分: 
20180124210932823.png
 

1. WiFi,Telephony,Ethernet 链路

 
  以WiFi为例,WifiStateMachine作为WiFi driver 和用户层之间通信的桥梁,处理用户下发的指令(如连接/断开连接/更改配置信息等)以及driver返回到framework的消息。当WiFi链路状态发生改变时,它将及时地告知CS,以便系统能够及时的更新链路信息(如iface/ip/dns server等)到Netd。而对于Telephony,这些工作则由DcTracker这个状态机来实现。
 

2. Framework中Network相关的4大Service

 
ConnectivityService 
   
  CS是系统网络连接管理服务。处理APP网络监听和请求,通知网络变化;处理WiFi/Telephony各个链路的网络注册,更新链路信息;网络检测/评分与网络选择。
 
NetworkPolicyManagerService
 
  NPMS是网络策略管理服务。收费网络(Metered Network)判定和处理策略;Power Save/Device Idle情况下对APP的网络限制策略,这些策略一般指对APP的网络和限制和放行,通过netfilter来实现。
 
NetworkManagementService
 
  NMS是网络管理服务。NMS为NPMS和其他Framework中的服务建立了与Netd之间通信的渠道,NPS对各个UID的策略最终都会通过NMS向Netd发送;另外,NMS还会监听Netd服务的状态,处理Socket返回的消息,如 Bandwidth/Iface/Route/Address/Dns Server等的变化,同时将这些变化通知“感兴趣”的模块。
 
NetworkStatsService
 
  这个服务主要收集网络数据,如各个Iface上下行网络流量的字节数等。APP或者其他服务可以通过该服务获取网络流量信息等。
 

3. Netd 守护进程

 
  Netd 负责Android网络的管理和控制。监听Kernel消息并通知NMPS;防火墙设置(Firewall);处理网络地址转换(NAT);进行网络共享配置(Tethering,如softap,usb网络共享)等。
 
--------------------- 
作者:ulangch 
来源:CSDN 
原文:https://blog.csdn.net/qq_14978113/article/details/79069002 
 

 

相关文章

文章评论

共有  0  位网友发表了评论 此处只显示部分留言 点击查看完整评论页面