Layer 1,2의 Packet 단위에 관한 기본용어와 관리 주체들의 용어를 알아보자.
WIFI IEEE 802.11 MAC/PHY Index
- PSDU (PLCP Service Data Unit, Physical layer Service Data Unit)
- PPDU (PLCP Protocol Data Unit, Physical layer Protocol Data Unit)
- PLCP (Physical Layer Convergence Procedure): PSDU들어가는 Preamble/Header
- PMD (Physical Medium Dependent)
- PLME (Physical Layer Management Entity)
- CS/CCA (Carrier Sense/Clear Channel Assessment)
- MPDU (MAC Protocol Data Unit): L1의 PSDU
- MSDU (MAC Service Data Unit): MPDU의 내부 DATA
- A-MPDU (Aggregated MAC Protocol Data Unit): Frame Aggregation 사용시
- A-MSDU (Aggregated MAC Service Data Unit): Frame Aggregation 사용시
- MAC(Media Access Control)
- SAP (Service Access Point)
- MLME(MAC sublayer Management Entity)
- 802.11 L2(Data)/L1(Phy) 구조
L2를 MAC SubLayer라고 하며, 관리와 제어는
MLME라는 걸쳐 Control/Management 관리
L1은 PHY로 두개로 나뉘어지며, PLCP는 MSDU에 PLCP Header를 넣어 주고, PMD는 각각의 PHY에 따라 전송을 하는 구조이며, 이를 PLME에서 관리
- 802.11 L2(Data)/L1(Phy) Packet 구조 및 명칭
아래는 간단히 각 명칭을 이해하기 위해서 상위에서 선언된 Packet 구조이며, PPDU안의 Preamble과 Header는 PLCP라고 한다.
그리고, PLCP Format은 각각의 PHY에 따라 다르므로, 이 부분은 각 개별 PHY정보 참고
상위 Layer1 과 Layer2의 용어를 보면 쉽게이해가 간다.
802.11 L2 의 MPDU 내의 MSDU 관련사항
Address는 4개까지 가질 수 있으며, 보통은 Address3개를 사용하며, MAC Address 이용.
- Address 1: Receiver Address
- Address 2: Transmitter Address
- Address 3: Recevier에 의해 Filer 목적으로 사용되어진다고 한다.
- Address 4 ESS(Extended Service Set) 안에 AP들 or Mesh network Node들 간의 Data frame에서 전송시 사용된다고 한다. (AP의 Roaming 시)
uS 단위로 CP중 PS-Poll frames을 제외한 CFP 중 전송된 HCF 아래의 모든 Frame에 기록
TCP 처럼 Sequence Control을 진행
- QoS Control
- HT Control
2.1 MPDU의 FC(Frame Control) 부분
MPDU의 처음 FC(Frame control) Field 의 2 byte에 대한 설정으로 약간 복잡하다.
Frame Control Field
Subfield |
Protocol Version |
Type |
Subtype |
To DS |
From DS |
More Fragments |
Retry |
Power Management |
More Data |
Protected Frame |
Orders |
Bits |
2 bits |
2 bits |
4 bits |
1 bit |
1 bit |
1 bit |
1 bit |
1 bit |
1 bit |
1 bit |
1 bit |
https://en.wikipedia.org/wiki/IEEE_802.11i-2004
- FC의 Protocol Version (2bit)
보통 00으로 설정을 한다고 한다.
FC의 Type의 종류가 따라 Frame의 종류 결정
- Management Frames
- Control Frames
- Data Frames
FC의 Type에 의해 각 역할이 정해지고, FC의 Subtype의 세부기능결정
- FC의 Type 과 SubType 의 각 역할표
Type value (b3,b2) |
Type description |
Subtype value
(b7 b6 b5 b4) |
Subtype description |
00 |
Management |
0000 |
Association request |
00 |
Management |
0001 |
Association response |
00 |
Management |
0010 |
Reassociation request |
00 |
Management |
0011 |
Reassociation response |
00 |
Management |
0100 |
Probe request |
00 |
Management |
0101 |
Probe response |
00 |
Management |
0110-0111 |
Reserved |
00 |
Management |
1000 |
Beacon |
00 |
Management |
1001 |
ATIM |
00 |
Management |
1010 |
Disassociation |
00 |
Management |
1011 |
Authentication |
00 |
Management |
1100 |
Deauthentication |
00 |
Management |
1101 |
Action |
00 |
Management |
1110-1111 |
Reserved |
01 |
Control |
0000-0111 |
Reserved |
01 |
Control |
1000 |
Block Ack Request (BlockAckReq) |
01 |
Control |
1001 |
Block Ack (BlockAck) |
01 |
Control |
1010 |
PS-Poll |
01 |
Control |
1011 |
RTS |
01 |
Control |
1100 |
CTS |
01 |
Control |
1101 |
ACK |
01 |
Control |
1110 |
CF-End |
01 |
Control |
1111 |
CF-End + CF-Ack |
10 |
Data |
0000 |
Data |
10 |
Data |
0001 |
Data + CF-Ack |
10 |
Data |
0010 |
Data + CF-Poll |
10 |
Data |
0011 |
Data + CF-Ack + CF-Poll |
10 |
Data |
0100 |
Null (no data) |
10 |
Data |
0101 |
CF-Ack (no data) |
10 |
Data |
0110 |
CF-Poll (no data) |
10 |
Data |
0111 |
CF-Ack + CF-Poll (no data) |
10 |
Data |
1000 |
QoS Data |
10 |
Data |
1001 |
QoS Data + CF-Ack |
10 |
Data |
1010 |
QoS Data + CF-Poll |
10 |
Data |
1011 |
QoS Data + CF-Ack + CF-Poll |
10 |
Data |
1100 |
QoS Null (no data) |
10 |
Data |
1101 |
Reserved |
10 |
Data |
1110 |
QoS CF-Poll (no data) |
10 |
Data |
1111 |
QoS CF-Ack + CF-Poll (no data) |
11 |
Reserved |
0000–1111 |
Reserved |
WIFI IEEE 802.11 MAC/PHY Index
상위정보는 아래 Index에서 찾아서 Spec으로 자세히 보도록하자
- FC의 ToDS(1bit) and From DS (1bit)
DS(Distribution System)을 위한 Bit로 Control Frame과 Management Frame은 모두 0 설정.
Data Frame은 이 둘 중 한 Bit를 1로 설정하여 AP와 STA을 알수 있다. (infra mode),
IBBS(independent basic service set) network , 즉 ad mode에서는 모두 0으로 설정.
|
ToDS |
FromDS |
ADDR1 |
ADDR2 |
ADDR3 |
ADDR4 |
To AP |
1 |
0 |
BSSID |
SA |
DA |
Unused |
From AP |
0 |
1 |
DA |
BSSID |
SA |
Unused |
Within Wireless AP |
1 |
1 |
RA |
TA |
DA |
SA |
Ad-hoc |
0 |
0 |
DA |
SA |
BSSID |
Unused |
Data or Management Frame이 1로 설정된 것은 MSDU or MMPDU의 분할이 되었다는 것이며, multiple frames 이 분할되었을 때
마지막 Packet제외하고 모두 1로 설정 하거나 다른 Frame은 0 설정
Data or Management frame 재전송되었을 때 1로 설정하며, 때때로, 재전송을 요구한다. 이것을 중복 packet을 제거하는데 도움을준다고 한다.
STA의 Power Management의 상태를 나타내며, 1일 경우 PS(Power Save) Mode, 0은 Active Mode로 나타낸다.
AP는 Power-save bit을 설정하지 않는다.
DS(distributed system)에서 받은 Buffer Frame에 사용되어지며, AP는 이 bit를 power-save mode에 있는 STA와 이용하기 위해 사용한다.
인증/보안을 위해 사용되어지며, WEP/WPA/WPA2 사용시 이 bit이 설정된다.
이 부분은 "strict ordering" delivery method에 적용될때 사용한다고 하며, 1일 경우 Non-QoS Data frame을 전송하는 Strictly Ordered Service라고 한다.
다른 Frame에서는 0을 설정
FC(Frame Control)
https://en.wikipedia.org/wiki/IEEE_802.11i-2004
802.11x Layer 2
https://en.wikipedia.org/wiki/IEEE_802.11#Layer_2_.E2.80.93_Datagrams
2.2 MPDU의 FC(Frame Control) 의 Type 과 Subtype
FC(Frame Control)->Type에 따라 아래와 같이 Frame의 종류가 결정되고, SubType에 따라 세부 Frame으로 나누어진다.
- Control Frame
- Management Frame
- Data Frame
FC(Frame Control)->Type의 Frame 구조 https://flylib.com/books/en/2.799.1.29/1/
MLME 및 FC->SubType 메뉴 http://dlrudwo.tistory.com/entry/WLAN-MAC-FRAME
2.2.1 FC(Frame Control) 의 Control Frame
CSMA/CA 포함 한
802.11에서 사용되어지는 제어 Frame들이며, 아래는 그들 중 일부이다.
기본통신을 위해 RTS/CTS 와 ACK는 중요하며 성능향상을 위한
Block Ack Request/Block Ack도 중요하다 (9.10)
- CSMA/CA(Carrier-Sense Multiple Access/Collision Avoidance)
Ethernet CSMA/CD 거의 동일
PS-Poll (Power Save Poll) Control Frame:
2.2.2 FC(Frame Control)의 Management Frame
MMPDU(MAC management protocol data unit)라고 불리우며, 802.11의 관리를 하는 Frame 이며, 아래의 Frame들로 구성된다.
상위세부내역은 다 나오지 않으며, 상위 표에서 더 참조하시길
IEEE 802.11 2007 문서 7.2.3 Management frames 참조해도 됨
현재 2007년꺼 WIFI Spec 밖에 없음
Passive Scan 방식 과 Active Scan 방식이 존재하며 아래와 같이 사용되어지는 Management Frame 이 다르다.
Management Frame 중 beacon 사용
WIFI AP가 경우 주기적으로 Beacon 를 보내는 방식이다.
WIFI STA의 경우 이 Beacon을 받아 WIFI AP 정보를 알아 SSID Scan 진행하는 방식으로 STA 입장에서는 Passive 방식이다.
Management Frame 중 Prove Request/Probe Response 사용
WIFI STA 입장에서 직접 WIFI AP의 정보를 얻어 가는 방식이라서 Active Scan이라고 한다.
WIFi STA이 Prove Request를 WIFI AP에게 보내고 이에 응답으로 Probe Response 받는 방식이다.
WIFI Passive Scan/Active Scan 차이
Authentiction Frame 관련
인증에 관련된 부분
Action Frame
2.2.3 FC(Frame Control)의 Data Frame
- MPDU / MPDU+QoS Data Frame 비교
Address4의 경우는 사용될 경우가 있고 , 사용되지 않을 경우가 있다.
관련사항은 아래의 MPDU->FC->ToDS/FromDS를 참고
3. WIFI(802.11) 과 Ethernet 의 De/Encapsulation
802.11의
Data Frames은 일반적으로
802.3(Ethernet 2)기반으로 통신한다. 802.11 Layer에 포함해서 802.3 Data 넣는 방법이 802.2 LLC/SNAP을 사용하여 전송한다.
802.2 LLC Header |
Information |
DSAP address |
SSAP address |
Control |
8 bits |
8 bits |
8 or 16 bits |
multiple of 8 bits |
SAP(Service Acess Points) DSAP(Destination SAP)
SSAP(Source SAP)
- 802.2 LLC에서 SNAP(SubNetwork Access Protocol) 추가확장
802.2 LLC Header |
SNAP extension |
Upper layer data |
DSAP |
SSAP |
Control |
OUI |
Protocol ID |
8 bits |
8 bits |
8 or 16 bits |
24 bits |
16 bits |
multiple of 8 bits |
- 802.2 LLC/SNAP를 802.11 적용의 예
- DSAP/SSAP는 0xAA 설정 (SNAP 적용)
- Control은 8bit로 0x03 설정
- OUI는 모두 0으로 설정
- Protocol ID는 EtherType으로 설정
802.11 LLC/SNAP Header |
LLC Header |
SNAP-OUI |
SNAP-EtherType |
AA-AA-03 |
00-00-00 |
08-00 |
LSAP: 0xAA : SNAP
상위 세부사항은 아래 사이트에서 참고하며, EtherType은 각 역할에 따라변경되므로 주의
802.3 기반의 Layer2 Ethernet Type
802.11->802.3 에서 사용되어지는 Ethernet Type이며, 인증관련부분도 간단히 소개
LAN Layer2
- Ethernet/802.3 LAN to 802.11 LAN Encapsulation Example
상위에서 적용된 것을 802.11 LLC Header 에 적용하여 Encapsulation 의 예제
Protocol |
Type/Length |
LLC Header |
|
802.11 LLC Header |
IP |
08-00 |
-- |
|
AA-AA-03-00-00-00-08-00 |
IP 802.3 |
length |
AA-AA-03-00-00-00-08-00 |
|
AA-AA-03-00-00-00-08-00 |
IP ARP |
08-06 |
-- |
|
AA-AA-03-00-00-00-08-06 |
AppleTalk (1) |
80-9B |
-- |
|
AA-AA-03-00-00-00-80-9B |
AppleTalk (2) |
length |
AA-AA-03-08-00-07-80-9B |
|
AA-AA-03-08-00-07-80-9B |
AppleTalk AARP (1) |
80-F3 |
-- |
|
AA-AA-03-00-00-F8-80-F3 |
AppleTalk AARP (2) |
length |
AA-AA-03-00-00-00-80-F3 |
|
AA-AA-03-00-00-00-80-F3 |
IPX Ethernet II |
81-37 |
-- |
|
AA-AA-03-00-00-F8-81-37 |
IPX SNAP |
length |
AA-AA-03-00-00-00-81-37 |
|
AA-AA-03-00-00-00-81-37 |
IPX 802.2 |
length |
E0-E0-03 |
|
E0-E0-03 |
IPX 802.3 |
length |
FF-FF |
|
FF-FF |
- 802.11 LAN to Ethernet/802.3 LAN Decapsulation Example
Protocol |
802.11 LLC Header |
|
Type/Length |
802.3 LLC Header |
IP |
AA-AA-03-00-00-00-08-00 |
|
08-00 |
-- |
IP 802.3 |
AA-AA-03-00-00-00-08-00 |
|
08-00 |
-- |
IP ARP |
AA-AA-03-00-00-00-08-06 |
|
08-06 |
-- |
AppleTalk (1) |
AA-AA-03-00-00-00-80-9B |
|
80-9B |
-- |
AppleTalk (2) |
AA-AA-03-08-00-07-80-9B |
|
length |
AA-AA-03-08-00-07-80-9B |
AppleTalk AARP (1) |
AA-AA-03-00-00-F8-80-F3 |
|
80-F3 |
-- |
AppleTalk AARP (2) |
AA-AA-03-00-00-00-80-F3 |
|
length |
AA-AA-03-00-00-00-80-F3 |
IPX Ethernet II |
AA-AA-03-00-00-F8-81-37 |
|
81-37 |
-- |
IPX SNAP |
AA-AA-03-00-00-00-81-37 |
|
length |
AA-AA-03-00-00-00-81-37 |
IPX 802.2 |
E0-E0-03 |
|
length |
E0-E0-03 |
IPX 802.3 |
FF-FF |
|
length |
FF-FF |
Ethernet/802.3 LAN to 802.11 LAN Encapsulation 관련문서
3.1 WLAN과 LAN과 호환
1.2에서 설명했듯이 LLC/SNAP을 이용하여 WLAN(802.11)과 LAN(802.3)은 서로 호환이 가능하며, WLAN은 User 입장에서는 LAN처럼 사용이 가능하다.
Ethernet Encapulation 기능을 Soft로 진행을 하면,
SoftMac이라 호칭하며, WLAN Chip에서 처리를 하면 이를
FullMac이라고 한다.
802.11 의 Layer 2 Frame 단위를
MPDU(Media access control Protocol Data unit)
802.11 Layer기반에 LLC/SNAP 추가하여 사용을 하여 아래그림과 같이802.3과 802.11을 호환되도록 한다.
- Ethernet De/Encapsulation
- Ethernet Encapsulation 은 AP/STA/IBSS의 TX
- Ethernet De-Encapsulation 은 AP/STA/IBSS의 RX
Frame Control의 Type에 의해 Data Frame들에게만 적용되고 Layer의 구성은 다음과 같다.
- Frame Control : 상위 참조
- Duration ID
- Address1/2/3
- Sequence Control
- LLC/SNAP : 전체 8 Byte 사용, 상위 참조
- DATA : Ethernet Data
- FCS
- Address 1 : RA( Receiver Address)
- Address 2 : TA( Transmitter Address)
- Address 3 : Recevier에 의해 Filer 목적으로 사용.
3.2 WIFI AP 와 STA 의 Ethernet De/Encapsulation
802.11 내에 LLC/SNAP 포함하고 있으며, LLC/SNAP 설정과 EtherType은 상위 3번의 예제를 참고하자.
Data Frame은 송신자가 ACK Frame을 받지 못한다면 재수신 한다.
802.11 Data Frame |
802.11 Header 24bytes |
802.2 LLC/SNAP 8bytes |
802.11-DATA |
802.11-CRC |
Frame Control |
Duration /ID |
Addr1 (RA) |
Addr2 (TA) |
Addr3 |
Sequence Control |
DSAP |
SSAP |
Control |
ORGCode (OUI) |
LLC-Type (PrtocolID) |
Data |
FCS |
2 B |
2 B |
6 B |
6 B |
6 B |
2 B |
1 B |
1 B |
1 B |
3 B |
2 B |
0~ 2304 B |
4 B |
재전송 구조
일반적인 전송은 ACK를 사용하지만, 상위
Frame Aggregation를 이용할 경우,
RTS/CTS 도 같이 이용
https://warpproject.org/trac/wiki/802.11/MAC/Lower/Retransmissions
https://witestlab.poly.edu/blog/802-11-wireless-lan-2/
AP기능
https://warpproject.org/trac/wiki/802.11/MAC/Upper/AP
STA의 기능
https://warpproject.org/trac/wiki/802.11/MAC/Upper/STA
상위구조를 보면, BSSID와 Wireless Mac Address가 별도로 존재하며, 이는 AP에서는 두 주소가 구분이 될 필요가 없지만, STA에서는 구분이 되어 사용이 되어진다.
AP의 TX Encapsulation (상위 그림참조)
- Addr1-RA : DA
- Addr2-TA : BSSID
- Addr3 : SA
STA RX Decapsulation (상위 그림 참조)
- Addr1-RA : DA
- Addr2-TA : BSSID
- Addr3 : SA
AP에는 Addr2-TA는 Wireless Mac Address or BSSID로 설정
STA의 TX Encapsulation (상위 그림 참조)
- Addr1-RA: BSSID
- Addr2-TA: STA-Wireless MAC Address
- Addr3 : DA
AP RX Decapsulation (상위 그림 참조)
- Addr1-RA: BSSID
- Addr2-TA: SA
- Addr3: DA
DA/SA : 802.3 Mac Layer 의 주소
3.3 WIFI IBBS 의 Ethernet De/Encapsulation
IBBS(independent basic service set)로 ad hoc이라고 하며 P2P통신을 할때 한다.
Wireless Mac Address로 서로를 구분
IBBS의 TX Encapsulation
- Addr1-RA : DA
- Addr2-TA : Wireless MAC Address
- Addr3 : BSSID
IBBS RX Decapsulation
- Addr1-RA : DA
- Addr2-TA : SA
- Addr3 : BSSID
DA/SA : 802.3 Mac Layer 의 주소
IBBS의 기능
https://warpproject.org/trac/wiki/802.11/MAC/Upper/IBSS
Ethernet Encapsulation
https://warpproject.org/trac/wiki/802.11/MAC/Upper/MACHighFramework/EthEncap
https://dot11ap.wordpress.com/ieee-802-11-frame-format-vs-ieee-802-3-frame-format/
WNIC (SoftMac vs FullMac)
https://en.wikipedia.org/wiki/Wireless_network_interface_controller
4. 기타사항 링크- WIFI Driver 종류 및 지원사항 (중요)
- Interface 부분확인 (SDIO/USB/PCI)
- WIFI Driver에서 각 지원되는 인증사항 확인
- Monitor Mode 지원사항 확인
- AP Mode 지원사항 확인
- Ad-Hoc Mode지원여부 확인
broadcom의 경우
- brcmfmac: Full MAC의 경우 Ad-hoc mode 미지원
- brcmsmac: Soft MAC의 경우 Ad-hoc mode 지원