WiFi篇
一。Netd
是守护进程;
Netd是Android系统中专门负责网络管理和控制的后台daemon程序;位于Framework层和Kernel层之间;是Android系统中网络相关消息和命令转发及处理的中枢模块;1.三个主要功能:
1)FireWall,NAT,带宽控制,无线网卡软接入(Soft Access Point),网络设备绑定(Tether)等;
2)Android系统中DNS信息的缓存和管理;3)网络服务搜索(Net Service Discovery,NSD):服务注册,服务搜索,服务名解析等;2.工作分为两个部分:
1)Netd接收并处理来自Framework层中NetworkManagementService或NsdService
的命令。这些命令最终由Netd中对应的Command对象去处理;2)Netd接收并解析来自Kernel的Event消息然后再转发给Framework层中对应Service去处理;3.工作流程
由init进程根据init.rc的对应配置项而启动;
启动时创建三个TCP监听socket,netd,dnsproxyd,mdns;三个监听:1)Framework层中的NetworkManagementService和 NsdService分别和netd,mdns监听socket建立连接;2)每个调用和域名解析相关的socketAPI的进程都会借由dnsproxyd监听socket与netd建立链接;4.接收并解析来自Kernel的UEvent消息(NetlinkManager)
UEvent消息的三个类型:
1)kobject, 通知内核中某个模块的加载/卸载;2)route, 网络链路断开/接通;3)nflog, 带宽控制相关;5.接收来自于Framework层NetworkManageService的命令 (CommandListener)
CL命令:
1.iptables 设置一些filter/NAT的规则6.DNS管理相关 (DnsProxyListener)
二。Wifi基础知识
IEEE 802.11
工会名称 802项目第11个工作组局域网标准 无线局域网MAC层,物理层技术规范
OSI/RM(开放互联参考模型)的七层架构:
应用,表示,会话,传输,网络,数据链路,物理数据链路层:
1)LLC 逻辑链路控制子层;2)MAC 媒介访问控制子层;802.11只涉及MAC层媒介 不同的媒介 :无线(CSMA/CA)/有线(CSMA/CD)CD:冲突检测 边发送边监听CA:冲突避免