tethering flow graph
来源:互联网 发布:申请网络出版 编辑:程序博客网 时间:2024/05/25 08:14
just simple flow of code(for android kitkat and earier versions, while even the latest versions do not change much).
for quick ref only.
Android tethering subsystem in fact base on the NAT mechanisms like all other linux systems.
for above flow, the chooseUpstreamType()/cleanupUpstram() controll the connection of extral interface, or WAN interface.
from Tethering part, WAN interfaces are controlled by MasterStateMachine, and InterfaceStateMachine stands for LAN(or internal) interfaces. while all tethering APIs are exported from ConnectivityService but not Tethering itself.(Vpn works the same for API export.)
mNMService is and proxy of network framework service to provide all network management related APIs. here it provides ipforward(setIpForwardingEnable) / dhcp & Dns forward server(startTethering & setDnsForwarders) and NAT(enableNat) by sending related operation commands into android native service Netd.
Netd would call the target function modules to implement the requests.
more arch related for network framework(the left is android framework part, and the right is Netd mechanisms, connected by unix socket)
::
android do not provided tether for ipv6 protocol, while you can impl that by just following the ipv4 logic. besides that, you'll need to import some other modules that take the same role of dnsmasq(for ipv4), like dhcpcd or the famous radvd.
- tethering flow graph
- Tethering
- llvm:Data Flow Graph
- llvm:Call Graph And Control Flow Graph
- 《The query-flow graph: model and applications》
- Soot之 遍历Control Flow Graph
- WiFi Tethering & Usb Tethering
- iPhone Tethering
- iPhone tethering
- !!!Chapter 9 Graph Algorithm (9.4 ~ 9.7) Network Flow
- Soot, FlowDroid 代码实例: 生成call graph, control flow graph等
- flow
- flow
- flow
- flow
- flow
- flow
- Reverse USB tethering
- 乾爲天章
- Hadoop Hive与Hbase关系 整合
- 今日作息及食谱(6.2)
- 在myeclipse中加入jquery代码提示功能
- 关键字 static
- tethering flow graph
- 工作经验积累
- 2014找工作总结-机会往往留给有准备的人
- [Ruby] Ruby Variable Scope
- 2014找工作----扎实的基础和开阔的视野是企业最看重的因素
- 如何用Google APIs和Google的应用系统进行集成(2)----Google APIs的所有的RESTFul服务一览
- 计算N维点集的Convex Hull的Quick hull算法
- 删除临时表遇到的ORA-14452问题
- Objective C类方法load和initialize的区别