在 802.11(Wi-Fi)協(xié)議中,控制幀(Control Frame) 是一種用于管理和協(xié)調(diào)無(wú)線網(wǎng)絡(luò)通信的幀類型,控制幀的主要作用是幫助無(wú)線設(shè)備(如客戶端和接入點(diǎn))管理對(duì)無(wú)線介質(zhì)的訪問(wèn),并確保數(shù)據(jù)幀的傳輸過(guò)程有效且可靠。
1. 802.11 控制幀的作用
控制幀并不攜帶用戶數(shù)據(jù),而是用于:
1. 控制訪問(wèn)無(wú)線介質(zhì)(即信道);
2. 確認(rèn)數(shù)據(jù)幀的接收,避免數(shù)據(jù)重傳;
3. 管理數(shù)據(jù)幀傳輸中的流程控制;
4. 協(xié)調(diào)無(wú)線設(shè)備之間的通信(如功率管理、清除信道等)。
2. 802.11 控制幀格式
與數(shù)據(jù)幀相比,控制幀的結(jié)構(gòu)相對(duì)簡(jiǎn)單,包含的字段較少,因?yàn)樗鼈冎饕糜诰W(wǎng)絡(luò)的控制和管理任務(wù),控制幀的一般結(jié)構(gòu)如下:
+-----------------------+
| Frame Control | 2 bytes
+-----------------------+
| Duration ID | 2 bytes
+-----------------------+
| Address 1 | 6 bytes
+-----------------------+
| Address 2 (Optional) | 6 bytes (依子類型而定)
+-----------------------+
| FCS (Frame Check Sequence) | 4 bytes
+-----------------------+
3. 802.11 控制幀的字段說(shuō)明
-
Frame Control :
和數(shù)據(jù)幀一樣,幀控制字段定義了幀的類型、子類型以及控制信息。Type 字段:指示幀的類型,對(duì)于控制幀,Type 為 01; Subtype 字段:指定具體的控制幀類型(如 RTS、CTS、ACK 等); Duration ID :
表示接收設(shè)備應(yīng)等待的時(shí)間,用于控制無(wú)線介質(zhì)的訪問(wèn),防止沖突。Address Fields:
Address 1:目標(biāo)設(shè)備的地址(MAC 地址);
Address 2:在某些控制幀中(如 RTS/CTS),會(huì)包含發(fā)送設(shè)備的地址;FCS:
幀校驗(yàn)序列,使用 CRC-32 算法用于檢驗(yàn)數(shù)據(jù)幀是否在傳輸過(guò)程中出錯(cuò)。
4. 802.11 控制幀的子類型
- RTS(Request to Send,發(fā)送請(qǐng)求):
RTS 是一種減少數(shù)據(jù)幀碰撞的機(jī)制,通常用于防止隱蔽節(jié)點(diǎn)問(wèn)題,發(fā)送方先發(fā)送 RTS 幀,告知接入點(diǎn)或目標(biāo)設(shè)備自己要發(fā)送數(shù)據(jù),RTS 幀請(qǐng)求接入點(diǎn)或目標(biāo)設(shè)備在信道上保留一定的時(shí)間段,用于之后的數(shù)據(jù)傳輸。
+-----------------------+
| Frame Control | 2 bytes
+-----------------------+
| Duration/ID | 2 bytes
+-----------------------+
| Address 1 (Receiver) | 6 bytes
+-----------------------+
| Address 2 (Transmitter)| 6 bytes
+-----------------------+
| FCS (Frame Check Sequence)| 4 bytes
+-----------------------+
地址字段:
Address 1:目標(biāo)設(shè)備的 MAC 地址;
Address 2:發(fā)送設(shè)備的 MAC 地址;
- CTS(Clear to Send,清除發(fā)送):
接收 RTS 幀后,目標(biāo)設(shè)備會(huì)回復(fù) CTS 幀,告知發(fā)送設(shè)備信道已經(jīng)清空,它可以發(fā)送數(shù)據(jù)。CTS 幀幫助確保沒(méi)有其他設(shè)備使用信道,避免數(shù)據(jù)沖突,CTS和RTS一起配合使用,減少隱蔽節(jié)點(diǎn)問(wèn)題,確保信道的可用性。
+-----------------------+
| Frame Control | 2 bytes
+-----------------------+
| Duration/ID | 2 bytes
+-----------------------+
| Address 1 (Receiver) | 6 bytes
+-----------------------+
| FCS (Frame Check Sequence)| 4 bytes
+-----------------------+
地址字段:
Address 1:發(fā)送設(shè)備的 MAC 地址(即之前發(fā)送 RTS 幀的設(shè)備);
- ACK(Acknowledgment,確認(rèn)):
ACK 幀用于確認(rèn)數(shù)據(jù)幀或其他控制幀(如 RTS、CTS)的成功接收,每當(dāng)設(shè)備成功接收到一個(gè)數(shù)據(jù)幀時(shí),它會(huì)發(fā)送 ACK 幀以通知發(fā)送方傳輸成功,避免數(shù)據(jù)的重傳。
+-----------------------+
| Frame Control | 2 bytes
+-----------------------+
| Duration/ID | 2 bytes
+-----------------------+
| Address 1 (Receiver) | 6 bytes
+-----------------------+
| FCS (Frame Check Sequence)| 4 bytes
+-----------------------+
地址字段:
Address 1:發(fā)送設(shè)備的 MAC 地址(即數(shù)據(jù)幀的發(fā)送者);
- PS-Poll(Power Save Poll,省電輪詢):
省電模式的設(shè)備在喚醒后,會(huì)發(fā)送 PS-Poll 幀請(qǐng)求接入點(diǎn)發(fā)送它在休眠期間緩存的數(shù)據(jù),PS-Poll 幀告訴接入點(diǎn),該設(shè)備已準(zhǔn)備好接收數(shù)據(jù)。
+-----------------------+
| Frame Control | 2 bytes
+-----------------------+
| Duration/ID | 2 bytes
+-----------------------+
| Address 1 (AP) | 6 bytes
+-----------------------+
| Address 2 (Station) | 6 bytes
+-----------------------+
| FCS (Frame Check Sequence)| 4 bytes
+-----------------------+
地址字段:
Address 1:接入點(diǎn)的 MAC 地址;
Address 2:客戶端設(shè)備的 MAC 地址;
- Block Ack(塊確認(rèn)):
802.11e 引入的機(jī)制,用于在高吞吐量場(chǎng)景下提高數(shù)據(jù)確認(rèn)效率,它允許接收方一次確認(rèn)多個(gè)數(shù)據(jù)幀,而不是單獨(dú)確認(rèn)每個(gè)幀。
地址字段:
Address 1:目標(biāo)設(shè)備的 MAC 地址;
Address 2:發(fā)送設(shè)備的 MAC 地址。