上一篇讲了生活中的各个设备在无线网中所担任的角色。这次就说说其内部的链接过程。
SSID和BSSID
首先在说链接过程之前,先解释下这两个技术名词。
SSID(Service Set Identifier服务集标识符)也可以写为ESSID,用来区分不同的网络,最多可以有32个字符,无线网卡设置了不同的SSID就可以进入不同网络,SSID通常由AP或无线路由器广播出来,通过XP自带的扫描功能可以查看当前区域内的SSID。出于安全考虑可以不广播SSID,此时用户就要手工设置SSID才能进入相应的网络。简单说,SSID就是一个局域网的名称,只有设置为名称相同SSID的值的电脑才能互相通信。
SSID号实际上有点类似于有线的广播或组播,他也是从一点发向多点或整个网络的。一般无线网卡在接收到某个路由器发来的SSID号后先要比较下是不是自己配置要连接的SSID号,如果是则进行连接,如果不是则丢弃该SSID广播数据包。
BSSID 是指站点的 MAC 地址,(STA)在一个接入点,(AP)在一个基础架构模式, BSS 是由 IEEE 802.11-1999 无线局域网规范定义的。这个区域唯一地定义了每个 BSS 。在一个 IBSS 中,BSSID 是一个本地管理的 IEEE MAC 地址,从一个 46 位的任意编码中产生。地址的个体/组位被设置为 0 。通用/本地地址位被设置为 1 。
将你手机的wifi打开,等待一段时间的扫描,你就能看到环境中的Wifi无线的SSID。BSSID就是指你设备的物理地址,这一点稍后再展开。
电脑的物理地址:
STA链接过程
连接三步骤
- 扫描(Probe Request、Probe Response)
- 认证(Authentication)
- 关联(Association Request、Association Response)
扫描阶段
STA 发送 Probe Req 帧,携带 SSID 表明欲加入的网络,携带 Supported Rates 表明自身的能力。
AP 回复 Probe Rsp 帧,这是 AP 的义务,(AP 允许此 STA 连接的情况下)也携带 Supported Rates 表明自身的能力。
作用:STA 获取 AP 的能力,决定要不要加入该网络;AP 获取 STA 能力,并根据自身情况决定要不要让该 STA 加入自身网络。
打个比方:STA 好比应聘者, AP 好比公司。应聘者投简历表明自己想要进入哪家公司,同时简历上面写上自己的能力。公司收到简历后,考虑还需不需要招人以及该应聘者能力情况,决定要不要准备招收该应聘者。如果准备招收,则公司也将自身的一些能力情况介绍给该应聘者,毕竟双向选择嘛。如果决定不接收,则回复拒绝,当然公司会稍微委婉点:回去等通知。
认证阶段
STA 收到 Probe Rsp 帧,决定要不要加入此网络,若决定加入,则发送 Auth 帧进行身份认证,否则流程接收。
STA 在 Auth 包中表明认证算法类型,0:Open System,1:Shared Key。
Shared Key 方式即代表使用 WEP 加密方式,Open System 方式即代表使用 TKIP/WPA/WPA2 方式。
使用 Shared Key 方式,是真实的身份认证过程,Auth 共有 4 步骤:
Auth seq#1:由 STA 发起认证请求,携带认证算法类型:Shared Key
Auth seq#2:AP 回复一个挑战明文(challenge text )
Auth seq#3:STA 使用预设密钥对挑战铭文进行加密,然后发送给 AP
Auth seq#4:AP 收到后,使用密钥对收到的消息进行解密,如果解密成功且明文一致表示认证成功,回复 successful
使用 Open System 方式,表明真正的身份认证放到 EAPOL 阶段,所以 Auth 只有两步骤:
Auth seq#1:由 STA 发起认证请求,携带认证算法类型:Open System
Auth seq#2:AP 直接回复 successful,因为真正的身份认证会放在 EAPOL 阶段
关联阶段
STA 收到认证通过报文后,决定要加入当前网络,就会发送 Assoc Req 帧。指明要加入的网络的类型、自己的 Listen Interval(聆听间隔,即 STA 多久聆听一次 Beacon 帧,以监听 TIM 信息)和一些能力信息。
AP 收到 Assoc Req 帧后,最终确认 STA 的 Listen Interval 自己能不能接受,能力信息是否匹配,如果一切 OK,回复 Assoc Rsp 帧,携带 AID(Association ID) 和 successful 信息,表明关联成功。否则,回复 Assoc Rsp 帧,携带 failed 信息,表明关联失败,同时 AP 也会从 mac table 中删除此 STA。
接上个比方:如果应聘者收到了 offer,并且也决定要去这家公司,则该应聘者会去公司报到,同时携带自身体检报告。公司接待该应聘者,如果体检报告不合格,公司最终也可以决定不接收该应聘者。如果体检报告合格,公司则会给该应聘者办理入职手续,并且给该应聘者分配一个工号,从此该应聘者便是公司的一员了。
EAPOL 阶段
如果采用的是 Shared Key 方式,即 WEP 加密方式,认证已在 Auth 阶段完成,完成上述关联阶段即已正式加入网络,后续可以通过密钥对消息加解密和 AP 进行正常通信了。
如果采用的是 Open System 方式,即 TKIP/WPA/WPA2 方式,在 Auth 阶段其实没有进行身份认证的工作,在 Auth 阶段就决定把身份认证的工作放在当前 EAPOL 阶段了。所以此种方式下,要进行 EAPOL 步骤,常见的就是 4-way handshake,当然还有 2-way-handshake。
关于加密方式,放到后面的篇章去讨论。所以,整个链接过程就是上述四个主要步骤。有条件的小伙伴可以用笔记本电脑,安装上Wireshark软件,利用自己手机作热点,让笔记本链接上,就能看到整个的链接过程了。下一篇主要介绍,Wifi的发展历程以及各个版本的区别。