完整的格式如下:
而 Linux 核心相關的巨集定義在 include/linux/ieee80211.h
中,實際上就是經由適當對齊之後的一個結構體:
第一眼看過去,最明顯的地方是他居然包含了 4 個 address。這是因為 802.11 使用的是分散式系統,假定 與 基地台連接,而 與 基地台連接,則若 需要與 通訊,需要先傳送給 基地台,由 基地台傳給另外一個 基地台,再由該 基地台傳送給其底下的 。因此,最多需要 四者的位址。也就是:
相關的常數同樣是定義在 include/linux/ieee80211.h
中:
當中一個重要的位元是 From DS/To DS
,除了課程影片內容之外, include/linux/ieee80211.h
的註解中也有提到他的功能:
這兩個位元決定傳輸的起點與終點是否為基地台。
封包並不是連續地收發,而是傳輸完一個封包之後,必須間隔一段時間,才可以進行下一次的收發。
不同種類的封包的收發之間有規定的間隔,這個時間間隔稱為 IFS (inter-frame space) 的常數時間之後,才可以繼續下一個動作。所以一種可能的傳輸是像下面這樣:
在這個傳輸當中,目的地(Dst)收到 RTS 之後,不會立刻傳 CTS,而是要等待長度為 SIFS 的時間,才可以回傳 CTS; 而收到 CTS 的一方,也不能立即傳輸,要等另外一段長度為 SIFS 的時間之後,才能傳輸封包。
而這樣的時間間隔不只有一種。實際上,這樣的長度間隔共有三種值,由短到長分別是 SIFS, PIFS, DIFS。
這個在 DCF 才會提到,但覺得可以放在這邊。