【WiFi】beacon时槽

以下内容大部分都是从网上找的, 目前在边学边写wifi相关的文档,看到这些不太清楚,就先记下来,后续我会再做确认,有误之处,请指出,谢谢^^

Beacon帧:

Beacon的实际发送一般都是采用最低速率的,其包含两个原因,

  1. beacon帧是一个广播帧,其没有ACK反馈,所以无法设置重传机制,
  2. beacon帧目的是广播AP的基本信息,所以希望所有的节点都能够有效的接收该数据,从而采用较低的速率以保证信号较差的节点也可以接收该信息。

Beacon Interval:

它是发送两个Beacon的时间间隔,也即Beacon的周期数,它是TU(Time Unit——一个TU是1024 microseconds,也即1毫秒),它的实际大小由AP控制,通常它会有以下影响:太大的话会影响影响新到的STA加入的灵活度,会耗费AP的缓存区空间,而太小则可能使信道长期被Beacon打断,进而影响到整个网络的吞吐量;默认的Beacon是100 TU,也就是0.1秒。

  1. Beacon时槽的是英文为Beacon Interval翻译,Beacon的意思是灯塔,信标,Interval意思是间隔,在这里应该理解为时间间隔。

  2. 它指无线路由器每隔多长时间(单位为毫秒,即千分之1秒)发送一次它的SSID信号。与之对应,无线客户端会定时自动地搜索周边的无线信号,因此,Beacon时槽越短,无线客户端就能越快地接收到无线路由器的SSID信号,并能跟快地连接上该无线信号。相反,如果无线路由器关闭或者不在无线客户端的接收范围内,无线客户端也能更快地知道该无线信号不在可用的范围内。

  3. Beacon时槽其实就是SSID广播包发送的间距(信标间隔时槽),Beacon 单位通常以微秒 millsecond(毫秒) 为单位( 1/1000 秒),一般默认值为100。一般无线网卡都是做所谓的被动式扫描(Passive Scanning),开启OS下的无线网络管理程序 或是 内建管理程序,无线网络卡其实都在从ISM 频道一直轮番扫描。等待扫到无线基地台的 Beacon时槽 才会显示在这一区域中。Beacon时槽传送频繁则会非常占用无线频宽资源。

  4. Beacon Interval间隔调高,有助于发挥无线网络效能 ,客户端更省电。若是Beacon Interval间隔调低,可以加快无线客户端的连接速度。在漫游环境和一些无线客户端联机变动比较大场合(如公众热点),客户端属于移动状态,Beacon时槽可以调低一些。

ESP8266作为UDP连接的服务器,需要进行以下设置: 1. 将ESP8266设置为AP模式,即作为一个独立的无线网络。可以通过设置SSID(WiFi名称)、密码、加密方式等参数来配置AP模式。 2. 使用espconn库中的函数进行UDP通信的初始化,例如espconn_create()函数。 具体的代码示例如下: ```c #include "ip_addr.h" #include "espconn.h" #define ESP8266_AP_SSID "LOVEYOU" #define ESP8266_AP_PASS "Be Happy" // 初始化AP模式,设置WiFi名和密码 void AP_mode_init() { struct softap_config ap_config; wifi_set_opmode(0x02); // 设置为AP模式,并保存到Flash os_memset(&ap_config, 0, sizeof(struct softap_config)); // AP参数结构体 = 0 os_strcpy(ap_config.ssid, ESP8266_AP_SSID); // 设置SSID(将字符串复制到ssid数组) os_strcpy(ap_config.password, ESP8266_AP_PASS); // 设置密码(将字符串复制到password数组) ap_config.ssid_len = os_strlen(ESP8266_AP_SSID); // 设置ssid长度(和SSID的长度一致) ap_config.channel = 1; // 通道号1~13 ap_config.authmode = AUTH_WPA2_PSK; // 设置加密模式 ap_config.ssid_hidden = 0; // 不隐藏SSID ap_config.max_connection = 4; // 最大连接数 ap_config.beacon_interval = 100; // 信标间隔100~60000 ms wifi_softap_set_config(&ap_config); // 设置soft-AP,并保存到Flash } // 初始化UDP通信 void init_UDP_communication() { // 在这里进行UDP通信的初始化操作 // 例如使用espconn_create()函数创建一个UDP连接 } // 主函数 void main() { AP_mode_init(); // 初始化AP模式 init_UDP_communication(); // 初始化UDP通信 } ``` 以上代码是一个简单的示例,通过设置ESP8266为AP模式并初始化UDP通信,可以将ESP8266作为UDP连接的服务器。 #### 引用[.reference_title] - *1* *2* *3* [ESP8266_AP模式、UDP的服务器or客户端](https://blog.csdn.net/E2242/article/details/124904269)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值