오늘날 사용하는 Wi-Fi의 표준. IEEE(Institude of Electrical and Electronics Engineers)에서 표준을 관리한다.
와이파이 버전은 6이다. 버전이 올라감에 따라 전송속도도 빨라지고 여러명이 써도 부담이 덜간다.
IEEE에서 관리하는 와이파이의 표준기술은 OSI의 7계층중 Data link layer(MAC)와 Physical layer를 대신한다.

현재 상용화된것은 맨아래에 Wi-Fi6이고, 이것은 802.11.ax이다.
Wi-Fi1부터 순서대로 a b g n ac ax순이다.

BSS - Basic survice set
AP는 혼자 서비스를 할수있고, 여기에 붙은 station들이 붙어있는 이 집합을 서비스를 하기위한 기본단위 BSS라고 한다.
각각의 AP별로 하나씩 BSS가 만들어진다. 그리고 AP들은 동일한 ID를 가질수있다.
또, BSS는 이동성을 지원하고 있으므로 왼쪽에 있다가 오른쪽으로 갈수있고, 따라서 이 전체 BSS를 아우르고 있는 ESS라는 집합이 있음을 알수 있다.
Ad Hoc network로도 연결할 수 있다.
와이파이는 비면허 대역을 사용하므로 마음대로 쓰지못하고 제약 조건이 있음.
오용을 하면 안된다. => bandwidth를 너무크게 쓰거나, power를 너무 크게하거나
Wifi는 IEEE가 이걸 정의했음
2.4GHz
와이파이를 2.4GHz영역에서 사용할 때 통으로 사용하는것이 아니라 채널의 단위로 나눠쓰게 된다. 우리나라에서는 13개의 채널이 존재한다.
한채널당 20MHz bandwidth, 채널의 간격은 5MHz로 정의했기 때문에 서로 간섭을 주지않는 채널의 개수는 4개(1, 5, 9, 13)
5GHz
채널의 갯수가 매우 많고, 서로 간접하지 않는다. 또 주변 채널의 Bandwidth까지 선택적으로 같이 사용할 수 있다.
AP가 basestation역할을 해서 모든 서비스 관련 정보를 관리하고 클라이언트의 정보까지 제한해준다.
여러가지의 BSS를 묶어서 사용할 수 있고 이것을 ESS(Extended Service Set)라고 한다
데이터 전송을 위해 필요한 Wi-Fi의 기능들
Reliable data delivery : 데이터 전송을 위한 기능
Access control : 여러 유저들이 동시에 이용할때 순서를 제어.
Security : 누가쓰는지, 정보 유출 방지
Station service
Delivery of data : 데이터 전송
Authentication : 특정한 basesation에 들어가기 위한 인증절차
Privacy : 보안
Distribution Services(ESS)
Association : 한순간에 하나의 BSS에만 연결될 수 있게 제어.
Distribution : 트래픽을 내부적으로 분산
Integration : 여러 AP들로 오는 데이터들을 통합해서 관리
Management Frames : 통신 시스템에서 데이터를 주고받기위한 용도가 아닌, 이것들을 관리하기 위한 정보들
BSS에 Join하는 과정
1. Scanning 스캔
2. Authentication 인증
3. Association 연결
2.4GHz 대역에서는 총 13개의 채널이 존재한다. 이때 한 AP가 하나랑 연결해서 서비스를 이용하기때문에 해당 AP가 존재하는 BSS와 조인하기 위해서 어떤채널과 연결해야하는지 스캔하는 것.
스캔이 되었다면 BSS에 조인한다. 이때 시간 동기화(Time syncronization)가 되어야한다. 즉, BSS에서 쓰고있는 네트워크 타이머와 시간을 맞춰야한다.
또, 와이파이 버전별로 2.4GHz / 5GHz / 둘다 를 사용하기 때문에 채널을 선택할 수 있는 범위가 다르다.

AP는 스캐닝을 위해 아무런 데이터 접속이 없어도 주기적(100ms = 10Hz)으로 Beacon Frame에 SSID, 암호화 방식 등 여러가지 네트워크 parameter들을 담아서 보낸다.
Beacon frame을 보내고 100ms를 카운트 하는것이 아니라 글로벌 타임을 기준으로 100ms를 카운트하고, beacon frame을 보내줘야 할때 채널이 busy한지 확인한다. 채널이 busy하지 않다면 바로 beacon frame을 보내주면 되고, 만약 채널이 busy하다면 다시 채널이 여유로워질때 보내면 된다. 이경우에도 밀린 beacon frame을 보내고 100ms를 세는것이 아닌 글로벌 타임을 기준으로 카운트 한다.
ex) 만약 beacon frame을 보낸뒤 150ms동안 채널이 busy한다고 해도, 150ms가 지났을때 한번 보내고, 200ms가 지났을때 다시한번 보낸다.
1. Passive Scanning
채널 하나하나로 찾아 가서 beacon frame이 올때까지 기다리는 방식(수동적)
기본적으로 100ms마다 beacon frame을 보내므로 13개의 채널을 다 접속하면 최소 1.3초가 걸린다. 이때 일반적으로 많이 사용하는 채널인 1, 5, 9, 13번 채널부터 스캔한다.
2. Active Scanning
특정 채널로 가서 request를 보내면 그것을 수신한 AP가 존재하면 beacon frame을 보내고, 만약 오지 않는다면 아무도 없다고 판단하고 다른 채널로 이동한다.
빠르지만 Scanning을 위한 트래픽이 발생하고, AP수가 많다면 트래픽이 더욱 많이 발생.
802.11 표준에서는 둘중에 어떤것을 사용할지 정해주기보다는 선택권을 디바이스 개발자에게 줬기때문에 기기를 만드는 사람이 무엇을 사용할지 선택. 일반적으로 스마트폰은 Active Scanning을 사용.
그 중 어떤 AP를 고를지를 고를지는 디바이스의 선택에 달렸음.
많이 사용하는 방법은 AP들로부터 받은 beacon frame에 신호의 세기 정보를 판단해 가장 센 신호에 접속하는 방법인 Power Level이다.
접속한 유저가 누구인지 파악하고, 시스템에 들어갈 자격(암호등)이 있는지 확인
인증을 받은 후 디바이스가 네트워크의 일원이 되게 처리해주는 과정.
시스템에 디바이스를 등록시키고, 등록된 디바이스를 접속할 수 있게 해준다.
디바이스들에게 고유한 ID를 부여하고 디바이스들의 정보들을 기록해주는 과정이다. 이때 Timer Synchronization도 같이 진행한다.
이 과정을 거치면 AP가 Station(디바이스)의 존재를 알게되고, station으로 부터 오는 데이터들을 코어망으로 forwarding해주고, 코어망에서 특정 station에게 보내는 데이터를 받은 뒤 forwarding해준다.
이때 한개의 Station(디바이스)는 하나의 AP에만 association 되어있어야한다.

먼저 클라이언트가 AP에게 자신의 정보와 함께 Association request를 보내면 AP가 그에대한 response를 보내주면서 클라이언트의 정보를 저장한다.
그 후 클라이언트와 AP는 서로 데이터를 주고받는다.
디바이스가 연결되어있는 BSS에서 다른 BSS로 넘어가는 것을 Hand off라고 한다했었다. 이때, 연결되었던 BSS와 넘어갈 BSS가 같은 ESS안에 있다면 Authentication 과정을 건너뛰고 association을 하는 Reassociation을 할수있게 해준다.

참조에 따르면 IoT Things는 배터리로 운용을 하므로 에너지를 아껴야한다.
이때 통신 부분에서 소모되는 배터리양이 엄청나므로 Power management를 해야할 필요가 있다.
Infrastructure Mode일때 AP는 배터리를 사용하지않고 전원코드를 사용해 연결되어있으므로 계속 100ms마다 주기적으로 beacon message를 보낸다. 이때 beacon message안에는 어떤 station에게 어떤 정보가 왔는지가 들어있다. Station이 sleep에서 깬 뒤 beacon message를 받았는데 만약 자신을 향한 메시지가 없다면 sleep 상태를 지속한다. 이때 언제까지 sleep을 할지는 여러가지 알고리즘을 통해 정할 수 있다.
Station은 Half duplex이다.
전송할때 / 수신할때 / 쉬고있을때(dozing)의 에너지 소모를 각각 Et / Er / Eㅇ라고 할때 에너지소모의 크기는 모두 비슷하다. 그래서 sleep 시키것이 Power Management 관점에서 가장 좋다.