無線網路對於現代人來說可以說是不可缺少的一環,以前的我都只知道哪裡可以連 wifi 但卻不知道 wifi 的傳輸原理,為什麼人一多 wifi 就會變慢等等的問題,直到真的認識了 IEEE 802.11 這個 Protocol。
IEEE 802.11 除了規定了該如何在無線的環境下傳輸封包之外,還多了兩個重要的功能:
睡眠模式
以減少用電量。由於 802.11 是透過空氣傳播
,那代表著訊號衝撞會非常容易發生,相較於有線網路的衝突都在傳輸的線上衝撞,802.11 作為無線傳輸代表著在空間中的每一處都可能發生衝撞,所以 802.11 定義了兩個 physical layer standard
這兩個 Standard 執行在 2.4GHz
的頻段,傳輸數率為 2Mbps
direct sequence
技術,將傳輸速率提高為 11Mbps
OFDM
的技術,將傳輸速率提高到 54 Mbps
,並將頻段提升到 5 GHz
2.4GHz
,不同的點在於它使用了 OFDM
技術,將傳輸速率提高到 54 MBps
MIMO
技術將傳輸速率提高到 108 MBps
今天有四個基地台 A, B, C, D 以上圖的方式擺放,虛線代表每個基地台能夠服務的範圍,所以從圖中就可以看到,雖然 B 可以和 A, C 互相溝通,但由於 A, C 相隔太遠所以這兩台設備無法通訊,這就代表 A 和 C 是 hidden node
。
如果今天 A 和 C 同時發送訊號給 B,但由於 A 跟 C 互相看不到對方所以並不知道對方也要送訊號給 B,所以兩個訊號會在設備 B 中發生 Collision
所以簡單來說, hidden node 代表雖然雙方聽不到對方的訊號,但同時傳給相同對象扔會造成 Collision,而由於 A, C 無法得知自己發送的訊號發生 Collision,所以無法像 Ethernet 一樣偵測到 Collision 後可以做一系列的補救措施。
今天有四個基地台以上圖的方式擺放,B 與 C 可以互相收到對方發出的訊號,這時如果 B 要傳給 A 而 C 也要傳送給 D 時,雖然 B, C 可以收到對方發送的訊號,但如果是傳給不同的設備的話便不會發生 Collision,所以簡單來說 雖然雙方聽得到對方的訊號,但同時可以傳送給不同的對象
。
為了解決上面提到的兩個問題所以專門為了 802.11 設計了一個演算法,稱為 Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA)
,由於無法做到像有線網路一樣的 Collision Detection
,所以只能盡量減少或避免發生 Collision。
control frames
用於告訴對方設備即將發送封包給他。
Request to Send (RTS)
,RTS 中會包含這個 封包的傳送時間
,用於告訴服務範圍中的所有設備自己將要發送封包了,在該時間內不要發送封包以免發生 Collision。Clear to Send (CTS)
,CTS 也會包含 收封包的時間
,用於告送服務範圍中的所有設備自己將要接收封包了,在該時間內不要發送封包以免發生 Collision。灰色部分代表會收到設備 B 所發出的 RTS,藍色部分代表會收到設備 C 所發出的 CTS,所以藍色部分的設備收到 CTS 後就不能在設備 C 接收的時間內發送訊號,不然就會和設備 B 所傳送的信號發生 Collision。
如果設備 B 與紅點設備同時發送 RTS 給設備 C 那麽 RTS 訊號也會在設備 C 中發生 Collision,當 C 偵測到 RTS 發生 Collision 後便不會回發 CTS
,所以當兩台設備沒收到 CTS 的話就會等待一個隨機的時間,時間過後會再次發送 RTS 訊號,這個隨機的等待時間和 Ethernet 的機制一樣是使用 exponential bakcoff algorithm
。
由於 802.11 並不支援 Collision Detection 的機制,雖然可以利用 CSMA 的機制盡量避免訊號發生 Collision 但不夠好,所以會額外使用 ACK
的機制讓對方設備告訴傳送設備他是否有確實收到訊號,這個機制就稱為 CSMA/CA
所以當設備利用 802.11 傳送資料的時候,首先會先由 Source Station 發送 RTS 向周圍的設備通告他即將要發送訊號,當 Destination Station 收到 RTS 後也會回送一個 CTS 用於告訴發送設備自己準備好接收資料,同時也告訴服務範圍中的所有設備自己即將接收資料,請在這段時間內不要發送訊號以免發生 Collision,接著每當 Source Station 發送訊號給 Destination Station 後,Destination Station 便會回傳一個 ACK 告訴 Source Station 自己有確實收到你傳來的訊號。
由於行動網路的設備可以隨意移動,所以必須要解決 node 之間動態移動與連線的問題,所以 802.11 將 node 分為三種:
Access points (AP)
Distribution System (DS)
Distribution System 用於解決 node 可移動和連線問題,屬於 Layer 2
的設備。
A → AP1 → C
A → AP1 → DS → AP3 → E
由上面的例子可以看到,利用 Distribution System 的好處是可以將傳輸的服務範圍變大。
當可移動的 Node 在移動的時後,會需要不斷地掃描附近的 AP 用於確認哪一個是連線品質最好的,這個行為稱為 Scanning
,在 Scanning 的時候會發送一個稱為 Probe
的 Frame,這時在附近的所有 AP 收到 Probe 後會回應一個 Probe Response
,當 Node 收到這些 Probe Response 後會選擇訊號最強的 AP 接著發送 Association Request
用於告訴該 AP 希望建立連線,而當該 AP 收到後也會回傳一個 Association Response
告訴 Node 可以進行連線。
雖然 Node 會在當下與訊號最好的 AP 進行連線,但當 Node 在移動的時候可能會跟原先連線的 AP 越來越遠導致訊號越來越差,這時 Node 就需要主動地再次進行 Scanning 的動作,這個行為就稱為 Active Scanning
,簡單來說就是由移動端發起的 Scanning 就稱為 Active Scanning。
每個 AP 會在 固定的時間(週期性)
發送一個 Frame,用於告訴他服務範圍中的 Node 他目前的連線能力(傳輸速率),這個 Frame 稱為 Beacon frame
,一樣的當移動的 Node 收到 AP 發送的 Beacon frame 後會判斷這個 AP 的連線能力是否比目前的 AP 更好,如果更好的話就會發送 Association Request
給該 AP,而該 AP 也會回傳 Association Response
,所以簡單來說由 AP 端發起的 Scanning 就稱為 Passive Scanning。