2.1 概述

最后更新于:2022-04-02 06:01:07

Netd是Android系统中专门负责网络管理和控制的后台daemon程序,其功能主要分三大块: - 设置防火墙(Firewall)、网络地址转换(NAT)、带宽控制、无线网卡软接入点(Soft Access Point)控制,网络设备绑定(Tether)等。 - Android系统中DNS信息的缓存和管理。 - 网络服务搜索(Net Service Discovery,简称NSD)功能,包括服务注册(Service Registration)、服务搜索(Service Browse)和服务名解析(Service Resolve)等。 Netd的工作流程和Vold类似[1],其工作可分成两部分: - Netd接收并处理来自Framework层中NetworkManagementService或NsdService的命令。这些命令最终由Netd中对应的Command对象去处理。 - Net接收并解析来自Kernel的UEvent消息,然后再转发给Framework层中对应Service去处理。 由上述内容可知,Netd位于Framework层和Kernel层之间,它是Android系统中网络相关消息和命令转发及处理的中枢模块。 Netd的代码量不大,难度较低,但其所涉及的相关背景知识却比较多。本章对Netd的分析将从以下几个方面入手: - 首先介绍Netd的大体工作流程以及DNS、MDns相关的背景知识。关于Netd的工作流程分析,读者也可参考[^①]中的内容。 - 本章将集中介绍Netd中涉及到的Android系统中网络管理和控制的相关工具。它们是iptables、tc和ip。 - 然后将介绍Netd中CommandListener的命令处理。这些命令的正常工作依赖于上面介绍的iptables等工具。 - 最后,我们将介绍Java Framework中的NetworkManagementService服务。 * * * * * **提示**:NsdService比较简单,感兴趣的读者不妨阅读作者的一篇博文”Android Says Bonjour”中的第2.2“NsdService介绍”一节。地址位于http://blog.csdn.net/innost/article/details/8629139。 * * * * * [^①]:可参考《深入理解Android :卷I 》第9 章关于Vold 的分析。
';