WiFi - NAV/CCA

wifi  的主题是竞争,那多ap 如何竞争呢?根据什么来竞争?

 主要靠txop 来竞争,txop 有两种机制 一种是poll txop就是给每个ap 都分配好一个时间片 轮到了就开始传输,一种是NAV(Network allocate vecotr)网络分配矢量,这种机制就是。

  • BSS内部NAV定时器(intra-BSS NAV timer):其只够通过来自于同一个BSS内部的终端来设置,通过BSS内部终端传输的Duration/ID字段来设置NAV定时器的数值。
  • 基本NAV定时器(basic NAV timer):其可由来自于不同BSS区域的终端来设置,也是根据这些终端传输的Duration/ID字段来设置NAV定时器的数值。

以上两个NAV定时器同时工作,如果由任意一个NAV设置为非0,也就是正在定时中,那么就认为信道是忙,正在被占据。

 我们wifi 关于载波质量的监测有两个1. 物理载波监测 (CCA)Clear channel assessment

                                                                        物理载波有份两种(1. 能量监测,2.载波监测 )

                                      please refer: ​802.11协议精读22:CCA (Clear Channel Assessment) | 易学教程

                              2. 虚拟载波监测 : 是网络分配矢量(NAV)所提供。
802.11的帧通常会包含一个Duration字段,用来预定一段媒介使用时间。
NAV本身其实就是一个定时器,用来指定预计要占用媒介多少时间,以微妙为单位。工作站会将NAV设定为预计使用媒介的时间,这包括完成整个操作必须用到的所有帧。

其他工作站的帧会将NAV的值倒数至零。只要NAV的值不为零,就代表媒介处于忙碌状态
当NAV为零时,虚拟载波监听功能会显示媒介处于闲置状态

refere: 802.11无线权威指南第三章学习笔记_虚拟载波监听-CSDN博客

好的,关于在 Spring Boot 中插入一条数据,我们可以按照以下步骤进行操作: 1. 首先,我们需要在 pom.xml 中引入 Spring Boot 的相关依赖,包括 Spring Boot Starter 和 Spring Boot Starter Data JPA,如下所示: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> </dependencies> ``` 2. 在 application.properties 或 application.yml 配置文件中,配置数据库连接信息,例如: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 3. 创建一个实体类,用于映射数据库中的表结构,例如: ```java @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private Integer age; // 省略 getter 和 setter 方法 } ``` 4. 创建一个 Repository 接口,用于操作数据库,例如: ```java @Repository public interface UserRepository extends JpaRepository<User, Long> { } ``` 5. 在业务逻辑中调用 UserRepository 的 save() 方法即可插入一条数据,例如: ```java @Service public class UserService { @Autowired private UserRepository userRepository; public void addUser() { User user = new User(); user.setName("张三"); user.setAge(20); userRepository.save(user); } } ``` 以上就是在 Spring Boot 中插入一条数据的详细步骤。需要注意的是,在实际开发中,我们需要根据具体的业务需求进行适当的调整,例如增加数据校验、事务管理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值