Android 等智能手机连接 WiFi 的相关过程的一些疑问

2017-02-26 20:23:07 +08:00
 cnta

假设的场景是智能手机到达一个场地,四周有许多 WiFi 热点可以连接(有未知密码的\有已知密码并且连接过的\有没有设密码的),为了连接其中某一种 WiFi 热点,下面的情况是不是这样的呢? 1:有未知密码的.智能手机开启 WiFi 功能后,接收周围 WiFi 热点广播的 ssid,然后发送密码给 WiFi 热点建立连接 2:有已知密码并且连接过的.智能手机开启 WiFi 功能后,若开启了自动连接功能,收到广播的 ssid,发送密码给 WiFi 热点并建立连接 3:有没有设密码的.收到广播的 ssid,自动连接,建立连接.

现在主要的问题是,智能手机在连接 WiFi 的这个过程中,首先都是先收到广播的 ssid 才进行下一步操作的吗?或者存在没有建立连接(现实中使用手机意义上的连接,浏览网页,交换应用数据等),但是智能手机先给 WiFi 热点设备发送数据包的情况吗?

我在网上查找了一些关键字,但是都不是自己想要的东西...所以来 V2EX 问下大家,平时一直是潜水状态. 刚开始接触这些东西,大家有相关经验的能不能推荐一点有关于介绍 android 或者网络设备连接 WiFi 的书籍或者博客吗?

本人萌新--学生一只

4813 次点击
所在节点    Android
5 条回复
ltux
2017-02-26 21:34:50 +08:00
lee015
2017-02-27 08:58:25 +08:00
aosp 源码看看呗, WiFi 处理有个状态机。
nicevar
2017-02-27 09:29:39 +08:00
看文档啊
简单的就是手机先发个探针请求给 AP ,然后 AP 回个响应,然后跟着来这样一次授权和连接过程
benmaowang
2017-02-27 23:24:48 +08:00
之前连过的自动开始以下流程。
没连过的手动选了后开始以下流程。
跟有没密码没关系。

手机 -- ProbeRequest --> AP
AP -- ProbeResponse --> 手机
手机 -- Authentication --> AP
AP -- Authentication --> 手机
手机 -- Association --> AP
AP -- Association --> 手机

AP -- EAPOL 握手#1 --> 手机
手机 -- EAPOL 握手#2 --> AP
AP -- EAPOL 握手#3 --> 手机
手机 -- EAPOL 握手#4 --> AP

手机 -- DHCP Discover --> AP
AP -- DHCP Offer --> 手机
手机 -- DHCP Request --> AP
AP -- DHCP ACK --> 手机

手机 -- ARP Request --> AP
AP -- ARP Reply --> 手机

---- 开始上网 ----
cnta
2017-02-28 12:11:26 +08:00
@ltux 这本书寒假看了一些,现在感觉需要结合其他书来看,这本书直接看下去好像翻字典...现在找到一本 <<深入理解 Android WiFi NFC 和 GPS 卷>>(邓凡平)结合起来应该够了

@lee015 最开始是这么打算的,不过下载很麻烦...国内源也要很久,不过之后肯定还是要看这个的

@benmaowang 谢谢~您说的让我一下子明白了很多.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/343320

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX