系列文章目录
第一章 国内下载AOSP最新源码的方法
第二章 下载AOSP WiFi相关的代码
第三章 将源码导入Android Studio(无需编译idegen)
前言
在STA跟AP完成四次握手后,数据链路层成功建立了连接,但是网络OSI七层模型中应用层访问网络还必须得有ip地址才行,DHCP就是从AP的DHCP服务获取IP的过程。
一、DHCP是什么?
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
二、DHCP的过程
1. DHCP正常流程
ClientModeImpl$ObtainingIpState:
enter()
startIpClient()
sendNetworkChangeBroadcast(DetailedState.OBTAINING_IPADDR)
stopDhcpSetup()
mIpClient.startProvisioning(prov.build()) <= IpClientManager
NetworkStack:
IpClient:
// CHECKSTYLE:OFF IndentationCheck
addState(mStoppedState);
addState(mStartedState);
addState(mPreconnectingState, mStartedState);
addState(mClearingIpAddressesState, mStartedState);
addState(mRunningState, mStartedState);
addState(mStoppingState);
// CHECKSTYLE:ON IndentationCheck
setInitialState(mStoppedState);
IpClient.startProvisioning()
sendMessage(CMD_START, new android.net.shared.ProvisioningConfiguration(req))
IpClient$StoppedState:
enter()
stopAllIP()
resetLinkProperties(