android netd firewall 分析,Android Network - 架构

文章参考的是Android 7.1 的源码web

以下图所示,主要分为三个部分:

32b355571b10a495b246d503c33af667.png

1. WiFi,Telephony,Ethernet 链路网络

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

2. Framework中Network相关的4大Service.net

ConnectivityService

CS是系统网络链接管理服务。处理APP网络监听和请求,通知网络变化;处理WiFi/Telephony各个链路的网络注册,更新链路信息;网络检测/评分与网络选择。server

NetworkPolicyManagerServicexml

NPMS是网络策略管理服务。收费网络(Metered Network)断定和处理策略;Power Save/Device Idle状况下对APP的网络限制策略,这些策略通常指对APP的网络和限制和放行,经过netfilter来实现。blog

NetworkManagementServicedns

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网络共享)等。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值