WiFi的原理以及正点原子WiFi模块的使用

本文主要用于记录WiFi的部分协议、原理,以及如何使用正点原子的WiFi模块。

文章名:WiFi的原理以及正点原子WiFi模块的使用
作者:遮瑕

注:本文大量引用《WIFI基本知识整理》以及百度百科的内容,同时操作指令处引用正点原子用户手册的内容。

一、对于Wi-Fi的基本了解

1.Wi-Fi是什么

  Wi-Fi(发音: /ˈwaɪfaɪ/,法语发音:/wifi/),在中文里又称作“移动热点”,是一个基于IEEE 802.11标准创建的无线局域网技术。虽然“Wi-Fi”常被写成“WiFi”或“Wifi”,但是它们并没有被Wi-Fi联盟认可。

(1)Wi-Fi联盟前世今生

  1999年,为推动IEEE 802.11b规格的制定,无线以太网路相容性联盟(Wireless Ethernet Compatibility Alliance,缩写为WECA)诞生。2002年10月,WECA改名为Wi-Fi联盟(Wi-Fi Alliance)。

(2)Wi-Fi本质

  Wi-Fi在无线局域网(WLAN)的范畴指的是“无线相容性认证”,实质上是一种商业认证,同时也是一种无线联网的技术。如果无线路由器连接了一条ADSL线路或者别的上网路线,则称其为“热点”。
  需要注意的是Wi-Fi、WLAN以及802.11的区别,常有人将其混为一谈,但是实际上它们是有区别的。WLAN是无线局域网(Wireless Local Area Network)的缩写;IEEE 802.11标准是由一系列的信道访问控制MAC (media access control)协议和物理层(PHY)标准组成的,它们是由IEEE LAN/MAN标准委员会创建和维护的;Wi-Fi是一种符合802.11标准的WLAN,但是随着发展,802.11协议也拥有多种子协议,且相互兼容,因此可以说Wi-Fi就是通过Wi-Fi联盟认证的WLAN,而不是单单的802.11协议。

2.常用相关术语

  以下将描述与解释Wi-Fi相关的常用术语(可不看):

  • LAN
      Local Area Network,局域网,覆盖范围一般是方圆数千米内,将一定范围内的设备组成通信网络,具有较强封闭性。传输介质为网线,由同轴电缆、双绞线及光缆3大原件构成。
  • MAN
      Metropolitan Area Network,城域网,是在一个城市范围内建立的计算机通信网,其主要用途是作为骨干络,通过它将一个城市内不同地点的主机、数据库、LAN等互联起来。虽然功能类似于WAN,但是技术类似于LAN,传输速率在100Mbps以上。
  • WAN
      Wide Area Network,广域网,又称公网,实现不同地区的LAN、WAN的连接,通常跨接极大的物理范围,从几十公里到几千公里不等,可连接不同地区与国家。
      注意:WAN不等于互联网,一般所指的互联网是属于一种公共型的广域网,公共型的广域网的成本会较低,作为一种较低廉的网上环境,但跟广域网比较来说,互联网没办法管理带宽,走公共型网上系统,任何一段的带宽都无法被保证。
  • WLAN
      Wireless Local Area Network,无线局域网,通过无线的手段将一定范围内的设备联通,组成局域网。

二、Wi-Fi的基础知识

1.有线与Wi-Fi的区别

  • Wi-Fi需要在通信之前就一直建立联系,而有线通信在需要通信时相互发送数据包进行握手即可。
  • 有线通信是半双工通信,Wi-Fi通信是全双工通信。
  • Wi-Fi较易被抓包,有一定安全隐患。
  • Wi-Fi通信时在网络层以下出错概率远高于有线,所以任意发送帧重传,需要在网络层之下的协议添加重传的机制(不能只依赖上面TCP/IP的延时等待重传等开销来保证)。

2.Wi-Fi的协议区分

  Ethenet(以太网)Wi-Fi采用的协议都属于IEEE 802协议集。其中,Ethenet以802.3协议做为其网络层以下的协议;而Wi-Fi以802.11协议做为其网络层以下的协议。无论是有线网络,还是无线网络,其网络层以上的部分,基本一样。
  由于协议的发展,所以802.11协议有多种子协议,按照时间顺序为:

  • 802.11a
      1999年9月制定,工作频率为5GHz,最大原始数据传输速度为54Mbps,由于2.4GHz使用较多,因此5GHz频段可以让802.11a相对有更少冲突信号,但是由于频率过高,导致其几乎只能在直线范围内使用,需要更多的接入点,传播距离更近。
  • 802.11b
      1999年9月制定,时间略晚于802.11a,该标准规定WLAN工作频段在2.4~2.4835GHz,数据传输速率达到11Mbps,传输距离控制在15 ~ 45m。,相较于802.11a来说,其能传播更远,穿透性更强。
  • 802.11g
      2003年6月制定,工作频率为2.4GHz,主要区别是其在2.4GHz频段使用正交频分复用(OFDM)调制技术,使数据传输速率提高到20Mbps以上。但是能够与IEEE802.11b的Wi-Fi系统互联互通,可共存于同一AP的网络里,保障了后向兼容性。
  • 802.11n
      2009年5月被批准,其在2.4GHz与5GHz均能工作,理论上最大传输速率可达600Mbps。它的推出便是为了解决a、b、g的通信速率过低的问题,为解决这个问题,802.11n增加了MIMO多输入输出)的标准,使用多个发射和接收天线来允许更高的数据传输率,并使用了Alamouti于1998年提出的空时分组码来增加传输范围。
      因为传输速率在很大的程度上取决于Channel(信道)的ChannelWidth有多宽,因此802.11n采用了特殊技术手段,可以在传输数据的时候将两个信道合并为一个进行传输,极大地提高了传输速率(这又称HT-40,high through)。同时802.11n的MIMO可以让两对天线同时在同一Channel上传输数据,而两者却能够不相互干扰(采用了OFDM特殊的调制技术)。
  • 802.11ac
      2009年9月被批准,其使用5GHz频带进行通信,理论上可以达到1Gbps的信息传输速度。
      802.11ac是802.11n的继承者。它采用并扩展了源自802.11n的空中接口(air interface)概念,包括:更宽的RF带宽(提升至160MHz),更多的MIMO空间流(spatial streams)(增加到 8),下行多用户的 MIMO (最多至4个),以及高密度的调变(modulation)(达到 256QAM)。
  • 802.11ax
      又名Wi-Fi 6,2019年9月,Wi-Fi联盟宣布启动Wi-Fi 6认证计划,理论上传输速率可达9.6Gbps。介于其Wi-Fi 6的名称,可以向上追溯命名a、b、g、n、ac为Wi-Fi 1到Wi-Fi 5(非官方称呼)。
      Wi-Fi 6主要使用了OFDMA、MU-MIMO等技术,MU-MIMO(多用户多入多出)技术允许路由器同时与多个设备通信,而不是依次进行通信。MU-MIMO允许路由器一次与四个设备通信,Wi-Fi 6将允许与多达8个设备通信。Wi-Fi 6还利用其他技术,如OFDMA(正交频分多址)和发射波束成形,两者的作用分别提高效率和网络容量。

3.Wi-Fi、以太网、OSI协议、TCP/IP协议

(1)OSI协议简介

  首先我们先简单了解一下什么是OSI协议,然后再解释Wi-Fi与它的关系。
  OSI(Open System Interconnect),即开放式系统互连。 一般都叫OSI参考模型,是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架,即OSI开放系统互连参考模型。OSI划分的七个层次由高到低依次为:Application(应用层)Presentation(表示层)Session(会话层)Transport(传输层)Network(网络层)DataLink(数据链路层)Physical(物理层)。如果简化来看的话,其中应用层、表示层和会话层可以一起视为应用层,而剩余层则可一起视为数据流动层。以下从低到高依次介绍每层的功能:
层次结构图

数据流动层

物理层
  物理层是参考模型中的最底层,主要定义了系统的电气、机械、过程和功能标准。如:电压、物理数据速率、最大传输距离、物理联接器和其他的类似特性。
  物理层的主要功能是利用传输介质为数据链路层提供物理联接,负责数据流的物理传输工作。
  物理层传输的基本单位是比特流,即0和1,也就是最基本的电信号或光信号,是最基本的物理传输特征。
数据链路层
  数据链路层是在通信实体间建立数据链路联接,传输的基本单位为“帧”,并为网络层提供差错控制和流量控制服务。
  数据链路层由MAC(介质访问控制子层)LLC(逻辑链路控制子层)组成。介质访问控制子层的主要任务是规定如何在物理线路上传输帧。逻辑链路控制子层对在同一条网络链路上的设备之间的通信进行管理。数据链路控制子层主要负责逻辑上识别不同协议类型,并对其进行封装。也就是说数据链路控制子层会接受网络协议数据、分组的数据报并且添加更多的控制信息,从而把这个分组传送到它的目标设备。
网络层
  网络层主要为数据在节点之间传输创建逻辑链路,通过路由选择算法为分组选择最佳路径,从而实现拥塞控制、网络互联等功能。
  网络层是以路由器为最高节点俯瞰网络的关键层,它负责把分组从源网络传输到目标网络的路由选择工作。互联网是由多个网络组成在一起的一个集合,正是借助了网络层的路由路径选择功能,才能使得多个网络之间的联接得以畅通,信息得以共享。
  网络层提供的服务有面向联接面向无联接的服务两种。面向联接的服务是可靠的联接服务,是数据在交换之前必须先建立联接,然后传输数据,结束后终止之前建立联接的服务。网络层以虚电路服务的方式实现面向联接的服务。面向无联接的服务是一种不可靠的服务,不能防止报文的丢失、重发或失序。面向无联接的服务优点在于其服务方式灵活方便,并且非常迅速。网络层以数据报服务的方式实现面向无联接的服务。
传输层
  传输层是网络体系结构中高低层之间衔接的一个接口层。传输层不仅仅是一个单独的结构层,而是整个分析体系协议的核心。
  传输层主要为用户提供End—to—End(端到端)服务,处理数据报错误、数据包次序等传输问题。传输层是计算机通信体系结构中关键一层,它向高层屏蔽了下层数据的通信细节,使用户完全不用考虑物理层、数据链路层和网络层工作的详细情况。传输层使用网络层提供的网络联接服务,依据系统需求可以选择数据传输时使用面向联接的服务或是面向无联接的服务。

应用层

会话层
  会话层的主要功能是负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能。会话层在应用进程中建立、管理和终止会话。会话层还可以通过对话控制来决定使用何种通信方式,全双工通信或半双工通信。会话层通过自身协议对请求与应答进行协调。
表示层
  表示层为在应用过程之间传送的信息提供表示方法的服务。表示层以下各层主要完成的是从源端到目的端可靠地的数据传送,而表示层更关心的是所传送数据的语法和语义。
  表示层的主要功能是处理在两个通信系统中交换信息的表示方式,主要包括数据格式变化数据加密与解密数据压缩与解压等。在网络带宽一定的前提下数据压缩的越小其传输速率就越快,所以表示层的数据压缩与解压被视为掌握网络传输速率的关键因素。表示层提供的数据加密服务是重要的网络安全要素,其确保了数据的安全传输,也是各种安全服务最为重视的关键。
  表示层为应用层所提供的服务包括:语法转换、语法选择和联接管理。
应用层
  应用层是OSI模型中的最高层,是直接面向用户的一层,用户的通信内容要由应用进程解决,这就要求应用层采用不同的应用协议来解决不同类型的应用要求,并且保证这些不同类型的应用所采用的低层通信协议是一致的。
  应用层中包含了若干独立的用户通用服务协议模块,为网络用户之间的通信提供专用的程序服务。需要注意的是应用层并不是应用程序,而是为应用程序提供服务

(2)TCP/IP协议简介

  TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
  在层次结构上,TCP/IP参考模型与OSI参考模型都采用了分层体系结构,但是TCP/IP参考模型比OSI参考模型更简化,OSI参考模型划分了7层,而TCP/IP参考模型最多划分了5个层次,分别是物理层,数据链路层、网络层、传输层和应用层,将OSI参考模型中的高三层合并为一层统称应用层。有些情况甚至只有三个或四个层次。
TCP/IP与OSI区别图

  TCP/IP传输协议是严格来说是一个四层的体系结构,应用层传输层网络层网络接口层都包含其中。也就是说,其将OSI模型的应用层、表示层、会话层合并为应用层;而传输层和网络层过于重要,还是单独分层;物理层与数据链路层合并为网络接口层。
  其中应用层的主要协议有Telnet、FTP、SMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层;传输层的主要协议有UDP、TCP,是使用者使用平台和计算机信息网内部数据结合的通道,可以实现数据传输与数据共享;网络层的主要协议有ICMP、IP、IGMP,主要负责网络中数据包的传送等;而网络访问层,也叫网络接口层或数据链路层,主要协议有ARP、RARP,主要功能是提供链路管理错误检测、对不同通信媒介有关信息细节问题进行有效处理等。下面将依次介绍:

网络接口层/数据链路层

  以太网协议规定,接入网络的设备都必须安装网络适配器,即网卡,数据包必须是从一块网卡传送到另一块网卡。而网卡地址就是数据包的发送地址和接收地址,有了MAC地址以后,以太网采用广播形式,把数据包发给该子网内所有主机,子网内每台主机在接收到这个包以后,都会读取首部里的目标MAC地址,然后和自己的MAC地址进行对比,如果相同就做下一步处理,如果不同,就丢弃这个包。

  所以链路层的主要工作就是对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方。

网络层

  IP协议
  网络层引入了IP协议,制定了一套新地址,使得我们能够区分两台主机是否同属一个网络,这套地址就是网络地址,也就是所谓的IP地址。IP协议将这个32位的地址分为两部分,前面部分代表网络地址,后面部分表示该主机在局域网中的地址。如果两个IP地址在同一个子网内,则网络地址一定相同。为了判断IP地址中的网络地址,IP协议还引入了子网掩码,IP地址和子网掩码通过按位与运算后就可以得到网络地址。
  ARP协议
  地址解析协议,是根据IP地址获取MAC地址的一个网络层协议。其工作原理如下:ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太网数据包,最终由以太网广播给子网内的所有主机,每一台主机都会接收到这个数据包,并取出包头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址;与此同时,ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
  路由协议
  首先通过IP协议来判断两台主机是否在同一个子网中,如果在同一个子网,就通过ARP协议查询对应的MAC地址,然后以广播的形式向该子网内的主机发送数据包;如果不在同一个子网,以太网会将该数据包转发给本子网的网关进行路由。网关是互联网上子网与子网之间的桥梁,所以网关会进行多次转发,最终将该数据包转发到目标IP所在的子网中,然后再通过ARP获取目标机MAC,最终也是通过广播形式将数据包发送给接收方。而完成这个路由协议的物理设备就是路由器,路由器扮演着交通枢纽的角色,它会根据信道情况,选择并设定路由,以最佳路径来转发数据包。

  所以,网络层的主要工作是定义网络地址、区分网段、子网内MAC寻址、对于不同子网的数据包进行路由。

传输层

  链路层定义了主机的身份,即MAC地址,而网络层定义了IP地址,明确了主机所在的网段,有了这两个地址,数据包就可以从一个主机发送到另一台主机。但实际上数据包是从一个主机的某个应用程序发出,然后由对方主机的应用程序接收。而每台电脑都有可能同时运行着很多个应用程序,所以当数据包被发送到主机上以后,是无法确定哪个应用程序要接收这个包。因此传输层引入了UDP协议来解决这个问题,为了给每个应用程序标识身份。
  UDP协议
  UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息,当数据包到达主机以后,就可以根据端口号找到对应的应用程序了。UDP协议比较简单,实现容易,但它没有确认机制,数据包一旦发出,无法知道对方是否收到,因此可靠性较差,为了解决这个问题,提高网络可靠性,TCP协议就诞生了。
  TCP协议
  TCP即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。简单来说TCP就是有确认机制的UDP协议,每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。为了保证传输的可靠性,TCP协议在UDP基础之上建立了三次对话的确认机制,即在正式收发数据前,必须和对方建立可靠的连接。TCP数据包和UDP一样,都是由首部和数据两部分组成,唯一不同的是,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

  传输层的主要工作是定义端口,标识应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性。

应用层

  理论上讲,有了以上三层协议的支持,数据已经可以从一个主机上的应用程序传输到另一台主机的应用程序了,但此时传过来的数据是字节流,不能很好的被程序识别,操作性差,因此,应用层定义了各种各样的协议来规范数据格式,常见的有http,ftp,smtp等,在请求Header中,分别定义了请求数据格式Accept和响应数据格式Content-Type,有了这个规范以后,当对方接收到请求以后就知道该用什么格式来解析,然后对请求进行处理,最后按照请求方要求的格式将数据返回,请求端接收到响应后,就按照规定的格式进行解读。

  所以应用层的主要工作就是定义数据格式并按照对应的格式解读数据。

(3)Wi-Fi与以太网

  Wi-Fi和以太网一个被称为无线局域网,一个被称为有线局域网,从名字里我们就可以看出,它们都是为了实现局域网而制定出的协议。
  在早期,有线局域网与无线局域网均有大量通信协议,不过随着时代的演变,有线局域网只有以太网存活了下来,几乎成为了有线局域网的代名词,而无线局域网同样几乎只有IEEE 802.11 无线LAN,也就是我们称的Wi-Fi存活了下来。
  WiFi属于局域网范畴,和以太网理念一样,底层使用MAC地址在局域网内通信。而以太网是链路层和物理层的规范(统称网络接口层),并且能够使用各种物理媒介,使用的是OSI模型;Wi-Fi属于网络接口层,使用的TCP/IP协议栈。

4.Wi-Fi的部分参数

  以下介绍WiFi的部分常用参数,这里只进行简单介绍,不深入解析。

  • MAC地址
      MAC(即Medium/MediaAccess Control, 介质访问控制),是数据链路层的一部分。MAC地址是烧录在NetworkInterfaceCard(即网卡,简称NIC)里的,它也叫硬件地址,共6字节(即48位,1byte = 8bit)。其中0-23位为组织唯一标志符(organizationally unique,简称OUI),是识别LAN(局域网)节点的标识(在有些抓包工具抓包的时候会将前三个字节映射成某种组织名称的字符,也可以选择不显示这种映射)。24-47位由厂家自己分配。

经过探讨,我们知道WLAN MAC地址有其唯一性,这就存在一个问题,通过获取WiFi设备发送的协议帧,即可知道厂家信息和设备出现的位置。造成用户的信息和隐私泄露。因此,Android系统和ios系统的产品对WiFi未连接时,扫描发送的协议帧采用随机MAC,即不使用设备的真实MAC,在一定场景下避免了设备信息泄露。

  • SSID
      Service Set Identifier,服务集标识,SSID技术可以将一个WLAN分为几个需要不同身份验证的子网络,每一个子网络都需要独立的身份验证,从而防止未授权用户进入子网络。
  • BSS
      Basic Service Set,基本服务集,常称为业务支撑系统,由一组相互通信的工作站组成,是802.11无线网络的基本组件。
  • Ad-hoc
      点对点网络连接模式。
  • BSSID
      一种特殊的Ad-hoc LAN的应用,每个BSS都会被赋予一个BSSID,其格式和MAC地址一样,是48位的地址格式,用来识别不同的BSS,同时一群计算机设定相同的BSS名称,即可自成一个group。它的作用和SSID类似,但是SSID是网络的名字,是给人看的,BSSID是给机器看的,作用类似MAC地址。
  • DS
      Distributed System,分布式系统,分布式系统属于802.11逻辑组件,负责将帧转发至目的地址,802.11并未规定其技术细节,大多数商业产品以桥接引擎合分步式系统媒介共同构成分布式系统。
  • Band(频段)
      频段即为频率的范围,例如2.4G的工作频段为2400-2483.5MHz,也就是说它的信号的频率范围在这个频段之中。
      如果一个AP支持两个频段的话,可以通过调制同时输出两个无线网络,一个工作在2.4G频段,一个工作在5G频段(频分复用,详情见《信号与系统》)。
  • Channel(信道)
      Channel是对频段的进一步划分,将5G或者2.4G的频段范围再划分为几个小的频段,每个频段称作一个Channel,例如5.18GHZ、Auto(DFS)等等,在信道不重叠的情况下,不同信道的数据是不会互相干扰的。
      为了避免信道相互干扰,每个国家都对可使用的信道做出了规定,只有部分信道是无需授权即可直接使用的(各个国家不同),大多数信道不能随意使用。另外,除了Wi-Fi,微波、红外线、蓝牙(使用802.15协议)的工作频段也都有在2.4GHZ范围内的,所以,它们传输的时候会对Wi-Fi传输造成干扰,因为两者在不同的协议下进行通信,所以互相将对方传输的信号识别为噪声。有时候配置AP的时候,Channel中有一个类似“Auto”的选项值,这表示打开AP的时候,AP自己Scan周围的环境,选择一个干扰最小的Channel来进行通信,当选择好了一个Channel的时候,一般就不会改变了。
    Channel Width(信道宽度)
      既然工作在2.4G的信号会有频段一说,那显然,信道也有一个频段,称为信道宽度。设置时需要注意信道宽度,较窄的信道会拥有更好的传输质量,信号噪声更少,但是传播距离较近;较宽的信道传播距离更远,但是信号噪声会更多。

三、Wi-Fi的使用与配置——以正点原子Wi-Fi模块为例

  我们可以将WiFi模块分为三种工作模式,分别为:

  • AP模式:Access Point,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般的无线路由/网桥工作在该模式下。AP和AP之间允许相互连接。
      对于该模式,根据应用场景的不同,可以设置 3 个子模式:TCP 服务器、TCP 客户端、UDP。
  • STA模式:Station, 类似于无线终端,sta本身并不接受无线的接入,它可以连接到AP,一般无线网卡即工作在该模式。
      对于该模式,根据应用场景的不同,也可以设置 3 个子模式:TCP 服务器、TCP 客户端、UDP。
  • AP + STA模式:WiFi既作为无线WiFi AP,又作为无线STA,其他 WIFI 设备可以连接到该模块,模块也可以连接到其他无线网络。
      根据应用场景的不同,可以设置 9 个子模式:(TCP 服务器、TCP 客户端,UDP)||(TCP 服务器、TCP 客户端,UDP),也就是AP和STA各有三种模式。

TCP 和 UDP:这是两种以太网上的数据通信协议,TCP(传输控制协议)是一种可靠的通信协议,具备连接的概念,同时有着重发,连接建立,连接断开的过程,数据通信起来会更可靠,但是数据处理稍复杂,网络利用率不高;UDP(用户数据报)是一种无连接的通信协议,网络利用率高,通信处理简单,速度块,缺点是网络拥塞的情况下,可能会有丢包。

TCP Client:也叫 TCP 客户端,它会主动向服务器发起 TCP 连接请求,并在连接建立后维持这个连接,仅此一条连接。有两个关键参数,目标地址(也就是服务器地址,或者叫远程地址,可以是 IP 或者域名),目标端口(也叫做远程端口),这两个参数都是 TCP 客户端要连接到的目标服务器的参数。
TCP Server:也叫 TCP 服务器,它是被动等待客户端连接的工作形式,与 TCP Client 刚好是对立方,这两者连接建立之后,就可以进行数据通信。注意 TCP Server 可以接受多条客户端的连接,它有一个关键参数,本地端口。
UDP:类似于 TCP Client,但是无连接,它只会向目标服务器发送数据,或者是仅接收来自目标服务器数据。
UDP Server:类似于 TCP Client,但是无连接,与 UDP 方式不同,它可以接收来自任意 IP 的数据,而且只会向最近与它通信过的 IP 发送数据。

  对于AP + STA模式不做介绍,有需要请查看正点原子手册,其余将进行依次介绍:

1.AP模式

(1)AP模式——TCP服务器配置

发送指令作用
AT+CWMODE=2设置模块 WIFI 模式为 AP 模式
AT+RST重启生效
AT+CWSAP=“ATK-ESP8266”,“12345678”,1,4设置模块的 AP 参数:SSID 为ATK-ESP8266,密码为12345678,通道号为 1,加密方式为:WPA_WPA2_PSK
AT+CIPMUX=1开启多连接
AT+CIPSERVER=1,8086开启 SERVER 模式,设置端口为 8086
AT+CIPSEND=0,25向 ID0 发送 25 字节数据包

(2)AP模式——TCp客户端配置

发送指令作用
AT+CWMODE=2设置模块 WIFI 模式为 AP 模式
AT+RST重启生效
AT+CWSAP=“ATK-ESP8266”,“12345678”,1,4设置模块的 AP 参数:SSID 为 ATK-ESP8266,密码为12345678,通道号为 1,加密方式为:WPA_WPA2_PSK
AT+CIPMUX=0开启单连接
AT+CIPSTART=“TCP”,“192.168.4.XXX”,8086建立 TCP 连接到192.168.4.XXX:8086
AT+CIPMODE=1开启透传模式(仅单连接 client 时支持)
AT+CIPSEND开始发送数据

(3)AP模式——UDP配置

发送指令作用
AT+CWMODE=2设置模块 WIFI 模式为 AP 模式
AT+RST重启生效
AT+CWSAP=“ATK-ESP8266”,“12345678”,1,4设置模块的 AP 参数:SSID 为 ATK-ESP8266,密码为12345678,通道号为 1,加密方式为:WPA_WPA2_PSK
AT+CIPMUX=0开启单连接
AT+CIPSTART=“UDP”,“192.168.4.XXX”,8086建立 UDP 连接到192.168.4.XXX:8086
AT+CIPSEND=25向目标 UDP 发送 25 字节数据

2.STA模式

STA模式——TCP服务器配置

发送指令作用
AT+CWMODE=1设置模块 WIFI 模式为 STA 模式
AT+RST重启模块并生效
AT+CWJAP=“ALIENTEK”,“15902020353”加入 WIFI 热点:ALIENTEK,密码为:15902020353
AT+CIPMUX=1开启多连接
AT+CIPSERVER=1,8086开启服务器,端口号为8086
AT+CIPSEND=0,25向 ID0 发送 25 字节的数据

STA模式——TCp客户端配置

发送指令作用
AT+CWMODE=1设置模块 WIFI 模式为 STA 模式
AT+RST重启模块并生效
AT+CWJAP=“ALIENTEK”,“15902020353”加入 WIFI 热点:ALIENTEK,密码为:15902020353
AT+CIPMUX=0开启单连接
AT+CIPSTART=“TCP”,“192.168.1.XXX”,8086建立 TCP 连接到192.168.1.XXX:8086
AT+CIPMODE=1开启透传模式
AT+CIPSEND开始传输

STA模式——UDP配置

发送指令作用
AT+CWMODE=1设置模块 WIFI 模式为 STA 模式
AT+RST重启模块并生效
AT+CWJAP=“ALIENTEK”,“15902020353”加入 WIFI 热点:ALIENTEK,密码为:15902020353
AT+CIPMUX=0开启单连接
AT+CIPSTART=“UDP”,“192.168.1.XXX”,8086建立 UDP连接到192.168.4.XXX:8086
AT+CIPSEND=25向目标 UDP 发送 25 字节数据

  以上为本文所有内容,只对Wi-Fi进行了基础的知识了解,不过多深入了解协议。

  • 19
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值