《深刻理解Android WiFi NFC 和 GPS》讀書筆記

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去處理;socket

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, 帶寬控制相關;
圖片描述
NetlinkManager分別註冊了三個用於接收UEvent的socket,其對應的NetlinkHandler分別是mUeventHandler,mRouteHandler和mQuotaHandler;
Netlink的工做流程:
圖片描述
每一個NetlinkHandler對象均會單首創建一個線程用於接收socket消息;工具

5.接收來自於Framework層NetworkManageService的命令 (CommandListener)

圖片描述
圖片描述
1)Client端發送的命令;
2)CL收到命令,找到命令對象;
3)命令對象執行runCommand函數;spa

CL命令:
1.iptables 設置一些filter/NAT的規則
圖片描述
2.tc 流量控制
圖片描述
從創建隊列,創建分類,創建過濾器三個方面,進行流量控制:
1)針對網絡物理設備綁定一個隊列QDisc;
2)在該隊列上創建分類class;
3)爲每一個分類創建基於路由的filter;
4)與filter配合,創建特定的路由表;
3.ip 網絡管理工具
1)替代ifconfig命令
2)替代route命令
3)替代arp命令線程

6.DNS管理相關 (DnsProxyListener)

二。Wifi基礎知識

IEEE 802.11
工會名稱 802項目第11個工做組code

局域網標準 無線局域網MAC層,物理層技術規範

OSI/RM(開放互聯參考模型)的七層架構:
應用,表示,會話,傳輸,網絡,數據鏈路,物理對象

數據鏈路層:1)LLC 邏輯鏈路控制子層;2)MAC 媒介訪問控制子層;802.11只涉及MAC層媒介 不一樣的媒介 :無線(CSMA/CA)/有線(CSMA/CD)CD:衝突檢測 邊發送邊監聽CA:衝突避免

相關文章
相關標籤/搜索